java - 在 Java 示例中使用 'For Loop'

标签 java eclipse for-loop while-loop

我正在用 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/

相关文章:

java - 如何从 Spring Controller 获取 AOP 建议中的 RequestMapping 请求?

java - 字节值的平均值

java - 为什么在创建新实例时进行 DUP

java - 在我刷新页面 Spring Mvc 之前,上传的图像不会显示

for-loop - DOS - 尝试理解分隔符以找到最低行数的 inf 文件

c - for循环条件总是为真

java - 如何在 Eclipse IDE 中设置 -D java 选项?

java - Eclipse 中的 JUnit4

android - 更改 Eclipse Android 项目中的源路径

gcc openmp 线程重用