我正在调试我已经意识到无法按要求工作的部分代码。我想输入几个数字并让int var
逐个存储它们,并保持scnr.hasNext()
为true,这样我的while循环继续进行,并且我可以对每个数字运行操作。
public static Number evaluateExpression(String expr) {
Scanner scnr = new Scanner(expr);
int var = 0;
while (scnr.hasNext()) {
System.out.println(scnr.hasNext());
var = scnr.nextInt();
System.out.println(scnr.hasNext());
}
[当前,如果我给它输入5、4,则输出为true false false,因此var = scnr.nextInt();
使(scnr.hasNext());
为false。我该如何解决?我也需要一种方法来存储下一个scnr值(如果它也是一个字符串),所以
String input = "";
input = scnr.next();
如果提供更多输入,则保持scnr.hasNext()
为真。
您应该在此类用例中使用do-while
循环:
public static Number evaluateExpression(String expr) {
Scanner scnr = new Scanner(expr);
int var = 0;
do {
System.out.println(scnr.hasNext());
var = scnr.nextInt();
System.out.println(scnr.hasNext());
} while (scnr.hasNext())