无法理解代码的位置

时间:2016-12-19 18:45:47

标签: java

我正在阅读Head First Java一书。本练习的输出应为:

a-b c-d

我试着把它弄好但是我很挣扎,所以我放弃了,看了下面的答案:

class Shufflel {
public static void main(String[] args){

   int x = 3;

   while (x > 0) {

   if (x > 2){
   System.out.print("a");
}
   x = x - 1;
   System.out.print("-");

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


   if (x==1){
   System.out.print("d");

   x = x - 1;


}

}

}

}

我无法理解为什么

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

x = x - 1;

位于它们所在的位置。

我无法提出一个逻辑上的理由,为什么代码行必须专门去他们必须去的地方而不是在其他位置,例如在if语句中或在{{1}下面} - part。

此外,它甚至没有让我想到这一点:while(x > 0){}代码行在底部。我完全不知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

我们已初始化

第一步:x = 3;

然后我们进入一个循环,直到" x"成为" 0"停止。

现在我们检查if(x > 2) true 并打印(" a")

之后,x = x - 1,即 x = 2 ,我们打印(" - ")

我们再次测试if(x == 2) true 并打印(" b c")

现在我们测试if(x == 1) false ,所以我们什么都不做,

我们再次重启循环:

if(x>2) false ,因为此位置x = 2, 然后x = x-1所以 x = 1 ,我们打印(" - "),最后if(x==1)为真,所以我们打印("在x = x -1之后d")和 x = 0 。然后我们离开循环,因为x不是> 0了。