Java 为什么循环中的赋值会影响程序其余部分的执行?
我最近编写了一个非常简单的程序。99瓶啤酒歌 代码块究竟是如何工作的?我想我非常具体的问题是为什么Java 为什么循环中的赋值会影响程序其余部分的执行?,java,Java,我最近编写了一个非常简单的程序。99瓶啤酒歌 代码块究竟是如何工作的?我想我非常具体的问题是为什么 if(beerNum == 1) { word = "bottle } 在我的小程序中工作?由于代码块直到程序结束才运行,那么当beerNum==1时,后面的代码行如何知道单词瓶子应该是单数 这是因为Java按照代码中出现的顺序读取所有代码行。这可能看起来微不足道,但如果你移动你的街区 if(beerNum == 1) { word = "bottle } 在while循环结束
if(beerNum == 1) {
word = "bottle
}
在我的小程序中工作?由于代码块直到程序结束才运行,那么当
beerNum==1
时,后面的代码行如何知道单词瓶子应该是单数 这是因为Java按照代码中出现的顺序读取所有代码行。这可能看起来微不足道,但如果你移动你的街区
if(beerNum == 1) {
word = "bottle
}
在while循环结束时,即使递减效果仍然有效,代码也不会工作(瓶子仍然是复数) 轻松更改代码块
if(beerNum >= 2) {
word = "bottles";
} else {
word = "bottle";
}
这将为您提供相同的输出。希望这有助于您更好地理解它知道打印
瓶子
而不是瓶子
,因为最初您已将单词
变量设置为“瓶子”
。但如果beerNum
为1,则单词将更改为bottle
,因为if语句
if(beerNum == 1) {
word = "bottle
}
首先在while循环中检查并更改
word
变量 我认为您的代码没有问题。您可以在任何IDE中运行它,或者使用命令行运行它吗?!只是一件小事,在代码中
if(beerNum > 0) {
System.out.println("Take one down, pass it round " + beerNum + " " + word + " of beer");
}
beerNum = beerNum - 1;
我认为我们不需要检查beerNum>0,只需执行以下操作:
while(beerNum > 0) {
if(beerNum == 1) {
word = "bottle";
}
System.out.println(beerNum + " " + word + " of beer on the wall, " + beerNum + " " + word + " of beer.");
System.out.println("Take one down, pass it round " + beerNum + " " + word + " of beer");
beerNum = beerNum - 1;
}
为什么你认为它在程序结束前不会运行?当序列到达它时,它就会运行,这是while中的第一个。你为什么一直发布?使用该代码帮助我处理代码块有什么问题吗?是的,看起来有点干净。是的,它确实在运行,我只是想知道代码块是如何工作的。
while(beerNum > 0) {
if(beerNum == 1) {
word = "bottle";
}
System.out.println(beerNum + " " + word + " of beer on the wall, " + beerNum + " " + word + " of beer.");
System.out.println("Take one down, pass it round " + beerNum + " " + word + " of beer");
beerNum = beerNum - 1;
}