2016-07-26 8 views
-1
public class BeerSong { 
    public static void main(String[] args) { 
     int beerNum = 99; 
     String word = "bottles"; 
     while (beerNum > 0) { 
      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 == 1) { 
       word = "bottle"; // singular, as in ONE bottle. 
      } 
      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 else 
     } // end while loop 
    } // end main method 
} // end class 

このコードは、プリントアウトした場合:は、whileループ内

99 bottles of beer on the wall 
99 bottles of beer on the wall. 
99 bottles of beer. 
Take one down and pass it around. 

なぜそれがこのように印刷されません。

99 bottles of beer on the wall 
99 bottles of beer.  
Take one down and pass it around, 99 bottles of beer on the wall.  

if文は、ループの後にあるので

+0

「このコードは、プリントアウトし:」いいえ、それはしません。 'と'を使わず、大文字と句読点を変えずに、 'Take down down'と' Pass it around 'を別々の行に出力します。 –

+0

'if'ステートメントはループの後にはありません。それはループ内にあります。 – khelwood

+0

あなたのコードにはどのような問題がありますか? Andy Turnerがすでに指摘しているように、あなたが望むように印刷されませんが、正しいと思われます。 3行目と4行目のprint文を変更する( 'System.out.println(" Take down down。 ");'と 'System.out.println("それを渡す。 ");') 'System.out.print( "1つを取って周りを渡す");そしてあなたはほとんど完了するべきです。 – Thomas

答えて

0

この状態はコードを壊していますか:

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 else 

数がゼロでない場合は、あなたが何かのためにそのロジックを置き換える必要があります...

をボトルや印刷をチェックインされています。曲がうまく再生されます、その後

if (beerNum == 0) { 
    System.out.println(beerNum + " " + word + " of beer on the wall"); 
} 

:)

最終的なコードは次のようになります。

public static void main(String[] args) { 
int beerNum = 99; 
String word = "bottles"; 
while (beerNum > 0) { 
    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 == 1) { 
    word = "bottle"; // singular, as in ONE bottle. 
    } else if (beerNum == 0) { 
    word = "bottles"; 
    System.out.println(beerNum + " " + word + " of beer on the wall"); 
    } 
} 
} 
+0

ビールが残っていない場合は、ビール0本を壁に書いてください。どのように改善されますか? –

+0

条件が正しいようです。 'beerNum'が0であれば(すなわち、elseブランチである0より大きくない)、彼は「壁にビールがなくなる」と印刷したいと思う。あなたの修正はそれを壊すでしょう。 – Thomas

+0

ありがとう、noobie間違い笑 – user6640454