这里输出是d-,当X==1时候,输出“d”,然后执行花括号内的x=x-1,此时X的值应该是0,不是应该退出循环了吗?
为什么会执行下面一条,还会输出一个“-”
调整位置以后,就不会输出“-”
还请大神指教

解决方案 »

  1.   

    while的话,先判断,判断true的话,执行大括号里面的语句,全部执行完大括号里面的语句才开始再次判断,而不是在执行代码块的时候,随时判断!
      

  2.   

    首先:
    第一题,第一次循环:x=3 执行 a-    循环完毕 X=2 ,
                    第二次循环:X=2执行  b c- 循环完毕 X=1,
                    第三次循环:X=1执行  d  但是里面有个-1所以现在X是0,但是还得运行啊,执行  -  循环完毕X=-1
                    结束循环!
    结果:a- b c- d- 
    第二题,第一次循环:x=3 执行 a-   ,此时X=2  循环完毕 X=2 ,
                    第二次循环:X=2执行  b c- ,此时X=1  ,执行 d ,循环完毕X=0,
                   结束循环!
                   
      

  3.   

    没调整前:
    1:x=3,进入循环,输出"a-",x=2;
    2,x=2,进入循环,输出"b c-",x=1;
    3,x=1,进入循环,输出"d-",x=0;循环结束
    调整后:
    1:x=3,进入循环,输出"a-",x=2;
    2,x=2,进入循环,输出"b c-",x=1,输出"d",x=0;循环结束