日期:2014-05-20  浏览次数:20776 次

求大神解释一下这个程序的运行结果
public class Shuffle1 {
public static void main(String[] args){
int x=3;
 
while(x>0){ 
if(x>2){
System.out.print("a");
}

System.out.print("-");
x--;

if(x==2){
System.out.print("b c");
}
if(x==1){
System.out.print("d");
x--;

}
}
}
为什么是a-b  c-d  而不是a--b c-d
------解决方案--------------------

public static void main(String[] args){
int x=3;
 
while(x>0){                                                //第五步  x=2 true,继续循环    //第十步  x=0  false,循环结束
if(x>2){                 //第一步   x=3>2
System.out.print("a");   //  打印"a"
}

System.out.print("-");  //第二步   打印 "-"            //第六步  打印"-"    
x--;                    //第三步  x=2                  //第七步  x=1 

if(x==2){
System.out.print("b c"); //第四步   打印  "b c"
}
if(x==1){                                              // x=1 true
System.out.print("d");                                 //第八步  打印d
x--;                                                   //第九步  x=0
}                       //循环体执行完第一遍,x=2,跳回前面再次循环          //执行完第二遍,跳回前面
}
}                               //结果就是a-b c-d了