プログラムをより合理化するために(どこでも試してキャッチすることなく)、データを取得するためだけに別のメソッドを作成しようとしました。DoublesとStrings用のものもあります。どういうわけか、このメソッドを使おうとすると、完全に無視され、コメントのように渡されます。私が間違っていることはありますか?
public int inputint(){
Scanner sc = new Scanner (System.in);
int variable = 0;
boolean valid = true;
do{
try{
if (variable >= 0 && valid){
}
else if(valid){
System.out.print("Please enter positive values only: ");
}
valid = true;
}
catch (InputMismatchException e){
System.out.print("Please enter numerical values only: ");
sc = new Scanner(System.in);
valid = false;
}
}while (!valid || variable < 0);
return variable;
}