あなたは逆の条件を持っています!条件が真になるまでではなく、条件が真である間while
実行されます...したがって、代わりに行う必要があるのは次のとおりです。
int marks = -1; // Start with an "illegal" marks value
while ((marks<0) || (marks>100)) { // while we have an illegal mark ...
System.out.println("Enter Students Test Marks Here (0..100)");
marks = input.nextInt(); // ... ask for a new one
}
この後、marks 変数には 0 から 100 までの有効な数値が含まれます。
編集:
気がついた...あなたは、ユーザーが正しい値を入力するまでユーザーにプロンプトを表示することについては質問しませんでしたが、間違った値を入力するまでプログラムを実行し、Marks
変数への割り当てを単に防止しているだけです...それが本当にあなたである場合その後、これを行うことができます:
int marks = 0;
while (true) { // Just keep running
System.out.println("Enter Students Test Marks Here (<0 or >100 to quit)");
int newMark = input.nextInt();
if ((newMark<0) || (newMark>100)) break; // Skip out of while loop
marks = newMark; // Only happens if newMark is between 0 and 100
}
while ループだけでなく、それが呼び出された関数を終了するために、break
部分をに置き換えることもできます。また、プログラムをすぐに終了したい場合は、 に置き換えることもできます。return
System.exit(0)
しかし、秘訣は、一時変数を使用して、入力をマークに割り当てる前にチェックすることです。
(ところで:慣例として、Javaの変数名は通常小文字で始まります...)