想知道这个怎么做,求解答

img


不知道这个怎么做的,是因为有continue才不是选a吗
望解答,谢谢

if(i++>--j) 这里先将j-1,然后与i比较,比较完以后将i的值+1。
do {} while(i<5); 是先执行循环体,再检查循环条件。
这个代码中 if 条件可以忽略,每一轮循环,i+1, j-1,i加到5时,j减到了6

因为if里面i和j的前后运算符的原因。

根据i和j在运行过程中值的变化来看,if里面的continue不会执行到,因为到i等于5的时候已经退出循环了,而此时j的值为6,所以不会执行到if里面的continue。

可以在if前面,if语句块里,if后面打印下i和j的值,就可以明白程序的执行过程了。

测试代码如下:



public class IfContinueTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
            int i=1,j=10;
            
            do {
                System.out.println("before if, i="+i+",j="+j);
                if(i++>--j) {
                    System.out.println("in if, i="+i+",j="+j);
                    continue;
                }
                System.out.println("after if, i="+i+",j="+j+"\n");
                
            }while(i<5);
            
            System.out.println("end, i="+i+",j="+j);
    }

}

img

是因为i<5所以循环执行4次,循环结束后i加了4次1,j减了4次1