0

ユーザーが入力した数値までカウントするJavaプログラムを書いています。ユーザーは、1 ~ 10 の数字のみを入力できます。

例えば:

ユーザーが入力した場合6、出力は次のようになります。

1 2 3 4 5 6

while演算子 and andifステートメントのみを使用してこれを行うにはどうすればよいですか?

これが私のコードです。コードが機能しない理由を突き止めようと苦心してきました。前もって感謝します!

import java.util.Scanner;

public class loop_lab {

    public static void main(String[] args) {
        System.out.println("Hi user, input any number that is between 1-10");{
            Scanner input = new Scanner(System.in);
            int num1 = input.nextInt();
            int num2 = 0;

            if (1<=num1 && num1>=10);
            num2=0;

            while (num2 < num1)
            System.out.println(""+(num2 + 1));
                num2++;

            }
            }
        }
4

5 に答える 5

1

問題はコード ブロック ({} の間のもの) にあると思います。while特に-loop がどのように動作するかを見てください。ループ内にあるはずのものとそうでないものは何ですか? また、ifステートメントは空です。; によって処理されるコード ブロックを閉じますif

IDE は、構文フォーマットを適用することで、これらのエラーを検出するのに役立ちます。コード内のコメントは、Eclipse からのもののように見えました。試してくださいctrl-shift-f(またはメニューで調べてください)。これにより、コードが自動的にフォーマットされ、インデントされます。これにより、構造内のエラーを検出しやすくなります。

于 2012-04-10T07:18:55.403 に答える
0

whileループで変更するだけ

 while (num2 < num1){
        if(num2==0)
         System.out.println((num2 + 1));
        else{
           num2++;
           System.out.println(num2);

        }


            }
于 2012-04-10T07:55:21.797 に答える
0

結果として、次の行が常に実行ifされます。 ;

{/内の条件ステートメントとループに関連する単一行のステートメントを含めることもポイントにしています}。これにより、コード ブロックの開始と終了が明確になります。コードのインデントに関する以前のコメントも、コード ブロックの開始位置と終了位置を特定する要因の 1 つです。

于 2012-04-10T07:25:44.157 に答える
0

これを試してみてください

import java.util.Scanner;

public class loop_lab {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Hi user, input any number that is between 1-10");
        Scanner input = new Scanner(System.in);
        int num1 = input.nextInt();
        int num2 = 1;

        if (1<=num1 && num1>=10){
            num2=1;

            while (num2 <= num1)
            {
                System.out.println("" + num2);
                num2++;
            }
        }
    }
}
于 2012-04-10T07:24:03.857 に答える
0

まず、条件チェックorで中かっこを使用する必要があります。ユーザーが 1 ~ 10 の範囲外の何かを入力した場合にループが実行されないように、に0割り当てます。num1

if (num1 < 1 || num1 > 10){
    num1=0;
}

また、ループを改善することもできます。

while (num2 < num1) {
    System.out.println( ""+ num2++ );
}

また、user689893 が言ったように、{}ブロックを確認してください。

于 2012-04-10T07:19:40.690 に答える