0

私のコンピューター サイエンスのクラスでは、ユーザーに "魔法の箱" に印刷する行数、列数、および印刷したい記号を入力し、これらの各変数を保存して、それらをそのまま印刷するプログラムを作成するように求められました。ネストされた for ループを使用した独自の魔法の箱。プログラムは正しくコンパイルされ、入力に基づいて正しいボックスが出力されますが、2 つの印刷ステートメントが出力されません。最初の 3 つのステートメント (ユーザーに特定の入力を促すステートメント) を出力しますが、ステートメントは出力しません。

Here comes the magic...Here's your very own magic box

This magic box brought to you by Beth Tanner."

考えられることはすべて試しましたが、これらのステートメントを印刷することはできません。助けていただければ幸いです。以下に私のプログラムを含めます。

import java.util.Scanner;

public class MagicBox {
  public static void main(String[] args) {
    Scanner input= new Scanner(System.in);

    System.out.println("How many rows would you like in your box?");
      int rows = input.nextInt();
    System.out.println("How many columns would you like in your box?");
      int columns = input.nextInt();
    System.out.println("What symbol would you like in your box?");
      String symbol = input.next(); 

    System.out.println("Here comes the magic...\nHere's your very own magic box!");

    int count1;
    int count2;
      for(count1 = 1; count1 <= rows; count1++) 
        for (count2 = 1; count2 <= columns; count2++)
          System.out.print(symbol);
          System.out.println(); 
      System.out.println("This magic box brought to you by Beth Tanner.");   

  } // end main
} // end class
4

3 に答える 3

2

正しいブロックを使用すると、すべてが機能します。

外側のループは、によって生成された改行を囲む必要があることに注意してくださいSystem.out.println();。あなたのコードでは、この改行は、すべての row * columnsシンボルが1行に印刷された後にのみ印刷されます。

int rows = 5;
int columns = 3;
String symbol = "@";

System.out.println("Here comes the magic...\nHere's your very own magic box!");

for (int count1 = 1; count1 <= rows; count1++) {
    for (int count2 = 1; count2 <= columns; count2++) {
        System.out.print(symbol);
    }
    System.out.println();
}

System.out.println("This magic box brought to you by Beth Tanner.");

出力:

Here comes the magic...
Here's your very own magic box!
@@@
@@@
@@@
@@@
@@@
This magic box brought to you by Beth Tanner.
于 2013-10-29T14:57:23.987 に答える
0

Magic box が何かはわかりませんが、次のようなものが必要だと思います。

for(count1 = 1; count1 <= rows; count1++) {
    for (count2 = 1; count2 <= columns; count2++) {
      System.out.print(symbol);
    }
    System.out.println();
  }

最初のコードにはいくつかの問題があります。

  • 宣言された「列」変数はありません-タイプミスがあり、実際には列です
  • ループでは常に中かっこを使用します。これらがないと、各ループで 1 つの式だけが実行されます。つまり、System.out.println() は、すべての行の後に追加されるのではなく、1 回だけ呼び出されます。
于 2013-10-29T14:57:18.697 に答える