public class d {
public static void main(String args[]){
int i=1;
int j=10;
do{
if(i>j)
continue;
j --;
} while(++i<6);
System.out.println("i= "+i+" j= "+j);
}
}
答案是i=6 j=5
为什么呢?谁给详细解答一下啊?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【yuys168】截止到2008-07-28 22:36:28的历史汇总数据(不包括此帖):
    发帖的总数量:33                       发帖的总分数:1828                     每贴平均分数:55                       
    回帖的总数量:34                       得分贴总数量:4                        回帖的得分率:11%                      
    结贴的总数量:33                       结贴的总分数:1828                     
    无满意结贴数:3                        无满意结贴分:168                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:9.09  %               无满意结分率:9.19  %                  
    敬礼!
      

  2.   

    用数字指示循环次数:i=1;1.j=9   while部分 i变为2
    2.j=8       ..    i=3
    3.j=7       ..    i=4
    4.j=6       ..    i=5
    5.j=5       ..    i=6,循环条件不成立,推出
    所以
    i=6 j=5
      

  3.   

    1.要注意do ... while() 循环会先执行do{}语句块,再判断循环条件2.++i<6(++在操作数的左边,会先执行操作数加1的动作),会先把i加1再与6去比较,这样可知循环条件为真时会有4次(i的值为2、3、4、5),当i为6时退出循环,所以i的值肯定为6,但由于do{}语句块会多执行1次,j的值会有5次减一的动作,所以j的值为5。
      

  4.   

    0、i=1, j=10
    1、do:j=10->9  while:i=1->2 
    1、do:j=9->8   while:i=2->3 
    1、do:j=8->7   while:i=3->4 
    1、do:j=7->6   while:i=4->5 
    1、do:j=6->5   while:i=5->6
    跳出 答案是i=6 j=5 
      

  5.   

    do{ 
    if(i>j) 
    continue
    j --;