如何保持scnr.hasNext()为真

问题描述 投票:0回答:1

我正在调试我已经意识到无法按要求工作的部分代码。我想输入几个数字并让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()为真。

java while-loop int java.util.scanner
1个回答
0
投票

您应该在此类用例中使用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())
© www.soinside.com 2019 - 2024. All rights reserved.