1

こんにちは皆さん、私はJavaを学ぶために自分自身のためにいくつかの読書をしていて、この問題に遭遇し、現在立ち往生しています。

ユーザーからの入力に基づいて一連の数字を出力する必要があります。たとえば、入力 = 5 の場合、出力は次のようになります。

@1@22@333@4444@55555

    import java.util.*;

public class ex5{
        public static void main(String[] args){
                Scanner kb = new Scanner(System.in);
                System.out.println("Please type a #: ");

                int input = kb.nextInt();

                for(int i=0;i<input;i++){
                        if(input==1){
                                System.out.print("@1");
                        }
                        if(input==2){
                                System.out.print("@1@22");
                        }
                }

        }
}

これは私が得る出力であるため、これは機能していないようです

# を入力してください: 2 @1@22@1@22

今、for ループの中に何を入れたらよいかわからないし、ここでも for ループをうまく使っているとは思えない...

みんな助けて?

4

6 に答える 6

2
    for (int i=1; i<=5; i++){
        System.out.print("@");
        for (int j=1; j<=i; j++) System.out.print(i);
    }

アウト

@1@22@333@4444@55555
于 2012-06-06T22:35:15.987 に答える
1

forネストされたループを使用する必要があります。

public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
    System.out.println("Please type a #: ");

    int input = kb.nextInt();

    for (int i = 1; i <= input; i++) {
        System.out.print("@");
        for (int k = 0; k < i; k++) {
            System.out.print(i);
        }
    }
}
于 2012-06-06T22:34:22.930 に答える
1

これは、ifステートメントで1と2の数字をチェックしているためです。これらの2つの数値のみをチェックするようにハードコーディングされており、ifステートメントの値を超えると機能しなくなります。

イテレータの値(この場合はi)をi回出力し(ヒント、大きなループ内で別のループを使用できます)、文字列の最後に@記号を追加します。

あなたが自分でそれを学ぶことができるように、私はあなたにコードを与えないようにしますが、もっと質問をしてください。

于 2012-06-06T22:37:39.410 に答える
0

あなたは与えられた数を印刷しようとしています-与えられた回数?次に、このために2つのループ(数値を反復するための外側のループと、反復するための内側のループ)が必要になります。-指定された数の倍。

これは次のようになります。

for(int i = 0; i < input; ++i) {
    System.out.print("@");
    for(int j = 0; j < i; ++j) {
        System.out.print(i);
    }
}
于 2012-06-06T22:35:22.547 に答える