我有一些代码可以根据用户的输入运行两个数字的加法或减法,其中他们可以键入一个字符串后跟一个整数,也可以仅键入一个字符串,具体取决于用户想要执行的操作。
我的代码如下所示:
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
String operation = "";
int result = 0, num = 0;
boolean finished = false;
while(!finished){
System.out.println("Enter the operation you'd like to perform on " + result + " or type q to quit.");
operation = kb.next();
if(kb.hasNextInt()){ num = kb.nextInt(); }
switch (operation){
case "add":
add(num, result);
break;
case "subtract":
subtract(num, result);
break;
case "q":
finished = true;
break;
}
System.out.println("New result: " + result);
}
System.out.println("Bye!");
}
//add() and subtract() methods go here
我希望
if(kb.hasNextInt())
方法能够检测用户是否输入了 int,并且仅在输入时运行以下代码,然后照常继续其余代码,但是扫描仪只是继续接受输入,直到出现某些情况(除了输入空格)。
我考虑将整个输入作为字符串并使用 .split() 来提取 int,但这似乎是一个糟糕的解决方案,我确信一定有一些我没有想到的更简单的方法。如有任何帮助,我们将不胜感激!
尝试更改您的代码如下
if(kb.hasNextInt())
{ num = kb.nextInt(); }
else
{kb.next();continue;}
hasNextInt
仅检查输入,并不实际处理它们。所以你需要使用 next
来跳过之前的输入。