我正在用 Java 做一个练习。这是在 for
循环上使用的。下面的代码显示了 while
循环。这是“啤酒之歌”的示例。
int beerNum = 99;
String word = "bottles";
while (beerNum > 0) {
if (beerNum == 1) {
word = "bottle";
}
System.out.println(beerNum + " " + word + " of beer on the wall");
System.out.println(beerNum + " " + word + " of beer");
System.out.println("Take one down.");
System.out.println("Pass it around.");
beerNum = beerNum -1;
if (beerNum > 0) {
System.out.println(beerNum + " " + word + " of beer on the wall");
}
else {
System.out.println("No more bottles of beer on the wall");
}
} // end loop
输出是:
OUTPUT:
-------------
99 bottles of beer on the wall
99 bottles of beer
Take one down.
Pass it around.
98 bottles of beer on the wall
98 bottles of beer on the wall
98 bottles of beer
Take one down.
Pass it around.
97 bottles of beer on the wall
97 bottles of beer on the wall
97 bottles of beer
Take one down.
Pass it around.
----------
----------
---------
---------
2 bottles of beer on the wall
2 bottles of beer on the wall
2 bottles of beer
Take one down.
Pass it around.
1 bottles of beer on the wall
1 bottle of beer on the wall
1 bottle of beer
Take one down.
Pass it around.
No more bottles of beer on the wall
上面的输出显示,当歌曲以一瓶啤酒结束时,它会说“墙上不再有瓶啤酒”。
现在我的任务是采用这个“啤酒之歌”示例并使用 for
循环而不是 while 循环重写它。
我这样做了,但输出看起来与 while 循环的输出不匹配。
以下是使用 for
循环的代码和输出。
String word = "bottles";
for(int beerNum = 99; beerNum > 0; beerNum --) {
if(beerNum==1) {
word = "bottle";
}
System.out.println(beerNum + " " + word + " of beer on the wall");
System.out.println(beerNum + " " + word + " of beer");
System.out.println("Take one down.");
System.out.println("Pass it around.");
beerNum = beerNum -1;
if (beerNum > 0) {
System.out.println(beerNum + " " + word + " of beer on the wall");
}
else {
System.out.println("No more bottles of beer on the wall");
}
--------------------------------------------------------------------------
Output
99 bottles of beer on the wall
99 bottles of beer
Take one down.
Pass it around.
98 bottles of beer on the wall
97 bottles of beer on the wall (should be 98)
97 bottles of beer (should be 98)
Take one down.
Pass it around.
96 bottles of beer on the wall
95 bottles of beer on the wall (should be 96)
95 bottles of beer (should be 96)
Take one down.
Pass it around.
94 bottles of beer on the wall
93 bottles of beer on the wall (should be 94)
93 bottles of beer (should be 94)
Take one down.
Pass it around.
--------------
--------------
--------------
4 bottles of beer on the wall
3 bottles of beer on the wall (should be 4)
3 bottles of beer (should be 4)
Take one down.
Pass it around.
2 bottles of beer on the wall
1 bottle of beer on the wall (should be 2)
1 bottle of beer (should be 2)
Take one down.
Pass it around.
No more bottles of beer on the wall
使用 for
循环时输出未正确显示。谁能帮我解决这个问题吗?
最佳答案
问题是在 for
循环中变量已经被递减。 (for(int beerNum = 99; beerNum > 0; beerNum --)
强调 beerNum--
部分)
因此语句beerNum = beerNum -1;
将减少两次。您需要删除此行。
String word = "bottles";
for(int beerNum = 99; beerNum > 0; beerNum --) {
if(beerNum==1) {
word = "bottle";
}
System.out.println(beerNum + " " + word + " of beer on the wall");
System.out.println(beerNum + " " + word + " of beer");
System.out.println("Take one down.");
System.out.println("Pass it around.");
if (beerNum > 1) {
System.out.println(beerNum -1 + " " + word + " of beer on the wall");
} else {
System.out.println("No more bottles of beer on the wall");
}
}
关于java - 在 Java 示例中使用 'For Loop',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52571293/