間違ったユーザー入力を処理する先読み方法を含むwhileループを使用するメソッドを作成しようとしています。または文字列を入力します。私は例外を投げたり、try {} catch {}を使ってこれをやろうとしています。可能なら。私はこれらを使用しないポストを見つけていないし、すべての私の試みはこれまで失敗している。基本的な考え方が有効です。ユーザー入力エラー、投げられない例外またはtry {} catch {}を使用しています
は、入力が正しいかどう
import java.util.*;
public class UserErrors{
public static Scanner console = new Scanner(System.in);
public static void main(String[]args){
String s = "Enter a integer between 1-10: ";
get(s);
}
public static int get(String prompt){
System.out.print(prompt);
while(console.hasNext()){
while(!console.hasNextInt()){
console.next();
System.out.println("Invalid data type");
System.out.print(prompt);
}
if(console.nextInt() > 10 || console.nextInt() <1){
System.out.println("not in range");
System.out.print(prompt);
}
}
return console.nextInt();
}
}
が、それは私も他のいくつかの失敗を削除
import java.util.*;
public class UserErrors{
public static Scanner console = new Scanner(System.in);
public static void main(String[]args){
String s = "Enter a integer between 1-10: ";
get(s);
}
public static int get(String prompt){
System.out.print(prompt);
boolean b = false;
while(!b){
if(!console.hasNextInt()){
console.next();
System.out.println("Invalid data type");
System.out.print(prompt);
console.nextInt();
}
else if(console.nextInt() < 10 && console.nextInt() >1){
b = true;
}
else{
System.out.println("not in range");
System.out.print(prompt);
console.nextInt();
}
}
return console.nextInt();
}
}
を停止する前に3回帰属することが正しい答えを必要と停止しません。修正するには何が必要ですか(基本的な考え方はありますか?)
if(console.nextInt() > 10 || console.nextInt() <1){ ... }
変更この行に:
そこにエラーはありません:if(console.nextInt()> 10 || console.nextInt()<1){...}! –