2016-12-19 74 views
-4

我正在从Head First Java一书中进行练习。这个练习的输出应为:理解代码位置的麻烦

AB CD

我试图得到它的权利,但我在努力,所以我给的,看着它在这里把答案:

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语句中或仅在while(x > 0){}-零件。

此外,它甚至没有跨过我的头脑,第二个把这个:x = x - 1代码行放在底部。我完全不知道为什么它在那里。

+0

请在此处邮政编码。图像中的文字不能被复制/粘贴,并且外部链接可能会死亡。 –

+0

那么也许那么这不适合你。猜猜这取决于人。我喜欢程序员的选择系列。 – maraca

+0

这个任务的指示是什么?代码完成这项工作 - 输出是正确的,但是这个练习的内容是什么? – RetteMich

回答

0

我们已经初始化

第一步:x = 3;

然后我们进入一个循环,将持续到“X”变成“0”,停止。

现在我们检查if(x > 2)和我们打印( “是”)之后

x = x - 1,这意味着X = 2和我们打印( “ - ”)

我们再次测试if(x == 2)这是真正我们打印(“BC”)

现在我们测试if(x == 1)这是虚假所以我们没有做任何事情,

,我们又重新开始循环:

if(x>2)因为x = 2时,在这个位置上,然后 所以x = x-1X = 1,我们打印(” - “),最后if(x==1)是真实的,所以我们在x = x-1之后打印(”d“)和x = 0。我们离开循环,因为x不再> 0。

+0

你是天使!非常感谢你,你不可能做得更清楚! –