1

ユーザーの入力を使用してピラミッドを作成する方法を見つけようとして、非常に苦労しています。これは、次のように見えると思われるものです。

Enter a number between 1 and 9: 4
O
O
O
O
OOOO
OOOO 
OOOO 
OOOO
O
OO
OOO
OOOO

これは私がこれまでに持っているものです

public static void main(String[] args) {
    int number;
    Scanner keyboard = new Scanner(System.in); 

    System.out.print("Enter a number between 1 and 9: ");
    number = keyboard.nextInt();

    for (int i = 1; i < 10; i++){
        for (int rows = number; number < i; rows++){
            System.out.print("O");
        }
        System.out.println();  
    }
}

達成しようとしていることは完全に理解していますが、for ループの仕組みを完全には理解していません。私は完全に迷っているので、どんな助けも大歓迎です!

4

3 に答える 3

0

for ループを次のように置き換えます。

    for (int i = 0; i < number ; i++){
        System.out.println("O");
    }
    for (int i = 0; i < number ; i++){
        for (int j = 0; j < number ; j++){
            System.out.print("O");
        }
        System.out.println();
    }
    for (int i = 1; i <= number ; i++){
        for (int j = 0; j < i ; j++){
            System.out.print("O");
        }
        System.out.println();
    }

出力 (番号 = 6 の場合):

O
O
O
O
O
O
OOOOOO
OOOOOO
OOOOOO
OOOOOO
OOOOOO
OOOOOO
O
OO
OOO
OOOO
OOOOO
OOOOOO
于 2013-10-01T01:28:02.653 に答える
0

洞察のためのいくつか..

for(INIT_A_VARIABLE*; CONDITION_TO_ITERATE; AN_OPERATION_AT_THE_END_OF_THE_ITERATION)
  • 複数の変数を初期化するか、任意のメソッドを呼び出すことができます。Java では、同じタイプの変数/メソッドを初期化または呼び出すことができます。

これらは有効なコード ステートメントです。

 for (int i = 0; i <= 5; i++) // inits i as 0, increases i by 1 and stops if i<=5 is false.
 for (int i = 0, j=1, k=2; i <= 5; i++) //inits i as 0, j as 1 and k as 2.
 for (main(args),main(args); i <= 5; i++) //Calls main(args) twice before starting the for statement. IT IS NONSENSE, but you can do that kind of calls there.
 for (int i = 0; getRandomBoolean(); i++) //You can add methods to determine de condition or the after iteration statement.

今..あなたの宿題について..私はこのようなものを使用します:

行の制限を繰り返し、スペースと目的の文字をその位置に追加します。位置は、あなたがいる行によって決定されます。

for (int i = 0; i <= 5; i++) {
  for (int j = 5; j > i; j--) {
    System.out.print(' ');
  }
  for (int j = 0; j < i; j++) {
    System.out.print("O ");
  }
  System.out.println();
}
于 2013-10-01T01:45:39.767 に答える