1

プログラムは正常に動作していますが、ユーザーがまだ文字列/文字を入力するとプログラムが壊れてエラーが発生する可能性があります。

ユーザーが0〜100の整数以外を入力するとエラーメッセージが表示されるようにステートメントを書きたい(基本的には、それができないという私の文字列)、またはできれば、整数 (可能な場合)。

これが私のコードです:

    int[] cw_Mark = new int[6];
    for (int i = 0; i < cw_Mark.length; i++) {
        if (i >= 0 || i <= 100) {
            System.out.println("Please Enter Your Module " + (i+1) + " Coursework Mark: ");
            cw_Mark[i] = input.nextInt();
        } else {
            System.out.println("Please Enter a Number Between 1 and 100");
        }
    }
4

4 に答える 4

0

これはそれを行う必要があります:

while(true)
{
    try {
        System.out.println("Please Enter Your Module " + (i+1) + " Coursework Mark: ");
        cw_Mark[i] = input.nextInt();
        if(cw_Mark[i}>=0&&cw_Mark[i]<=100)
            break;
    } catch(InputMismatchException e) {
         System.out.println("Needs a number.");
    }
    System.out.println("Needs a number from 1 to 100");
}

これにより、不適切な値が検出され、適切な値が提供されるまでユーザーに適切な値を提供するよう求められます。

編集:明確にするために、これを現在持っている場所に貼り付けるだけです

System.out.println("Please Enter Your Module " + (i+1) + " Coursework Mark: ");
        cw_Mark[i] = input.nextInt();

そして、0 から 100 までの小切手を取り出してください。そこでは何の役にも立たず、違いを生むために適切な場所でチェックしません。

于 2013-11-06T17:18:17.500 に答える
0

プログラムが例外をスローして終了しないようにするには、try/catch を使用してユーザー入力受け入れステートメントをラップするだけです。

try {
    cw_Mark[i] = input.nextInt();
} catch(InputMismatchException e) {
     System.out.println("Entered value is not a number");
}
于 2013-11-06T17:11:08.283 に答える
0

これを試して

    int[] cw_Mark = new int[6];
    for (int i = 0; i < cw_Mark.length; i++) {
        System.out.println("Please Enter Your Module " + (i + 1) + " Coursework Mark: ");
        while (true) {
            String next = input.next();
            try {
                cw_Mark[i] = Integer.parseInt(next);
                if (i >= 0 || i <= 100) {
                    break;
                }
            } catch (NumberFormatException e) {
            }
            System.out.println("Please Enter a Number Between 1 and 100");
        }
    }
于 2013-11-06T17:19:15.210 に答える