class Example{
public static void main(String args[]){
int i=1,j=10;
do{
if(i++>--j)
continue;
}while(i<5);
System.out.print(“i=”+i+”j=”+j);
}
}
程序运行结果:
【答案】
i=5j=6
求思路,,非常感谢,,,
我推来推去还是推导不出结果,,求大伙帮忙
------解决方案--------------------
加上两句话就一目了然了
public class dd
{
public static void main(String args[])
{
int i = 1, j = 10;
do
{
if (i++ > --j)
continue;
else //加上这句
System.out.println("i=" + i + " j=" + j);//加上这句
}
while (i < 5);
// System.out.println("i=" + i + " j=" + j);
}
}
运行结果是这样的:
i=2 j=9
i=3 j=8
i=4 j=7
i=5 j=6
从程序开始,首先执行一次do{}里面的语句,即i加了1,j减少1,当i比j大的时候都continue即结束本次循环,又由于while (i < 5)的作用,当i变到4的时候是最后一次循环(变到5就不能了,此时i已经是5了,同理j已经是6了),故结果是那样。i=2,i=3,i=4,加上之前的一个do,i一共加了4,同理j也一共减了4,故j是6。
八成是学习C语言的时候老师故意刁娜的
------解决方案--------------------
过程是这样的:
i = 1 , j = 10 - 1 = 9; 1 > 9不成立 (执行i++) i=2;
i = 2 , j = 9 - 1 = 8; 2 > 8不成立 (执行i++) i=3;
i = 3 , j = 8 - 1 = 7; 3 > 7不成立 (执行i++) i=4;
i = 4 , j = 7 - 1 = 6; 4 > 6不成立 (执行i++) i=5;
需要注意的是i++ 是在这条语句结束后执行i = i +1 ++i是先执行i=i+1再运行语句
------解决方案--------------------
补充:推错了。。。