import java.util.Scanner;
public class Kehou2_copy {
public static void main(String[] args){
int water = 15;
int i;
do{
water = water + 5;    //语句1
i = (water - 15)/5;   //语句2

}while(water <= 50);
System.out.println(i);
}}问题:为什么把语句1和语句2颠倒了位置以后答案发生了变化.    这两个语句可以颠倒麽?如果可以怎么颠倒,改怎么做?    

解决方案 »

  1.   

    根据循环条件,不管是否颠倒,都是在 water = 55 的时候跳出循环。不同的是。颠倒之前是计算了 i 再退出循环,i 是根据 water = 55 算出来的;颠倒之后,还没有计算 i 就退出循环,i 还是根据 water = 50 算出来的。颠倒之后,不管判断条件在前面还是后面,i 都没有机会根据 water = 55 来计算。所以要颠倒这两句话且得到同样的结果,必须在循环的外面再加上一句 i = (water - 15)/5;
      

  2.   

    water = water + 5;    //语句1 
    i = (water - 15)/5;//语句2
    不颠倒的话是,i=(20-15)/5;
    颠倒后:i=(15-15)/5;
    颠不颠倒位置,看需求咯!!!