public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Queue que = new Queue(50);
System.out.println("Noki's Calculator");
System.out.println("Choose an operation (*, /, +, -)");
String inputOp = input.nextLine();
System.out.println(" ");
System.out.println("Now please enter your numbers. When finished, simply press enter.");
boolean cont = true;
while(true){
System.out.print(" :: ");
String j = input.next();
if(j != null) {
int numb = Integer.parseInt(j);
que.insert(numb);
} else if (j==null) {
input.close();
break;
}
}
que.view(); // PROBLEM: never executes this line
}
我的代码不会脱离while循环,而是仍然要求用户输入。当我按Enter键时,它不会再次打印“ ::”,但从不执行que.view()
答案 0 :(得分:2)
使用nextLine()
代替下面的next()
,
String j = input.nextLine();
答案 1 :(得分:1)
根据您的实现'j'永远不会为null。当您按下Enter键时,“”将分配给j。您可能需要按以下方式更改逻辑;使用input.nextLine()代替input.next()
if(!(j.isEmpty())) {
int numb = Integer.parseInt(j);
que.insert(numb);
} else {
input.close();
break;
}
答案 2 :(得分:0)
input.next()
仅在按“ enter”时不返回“ null”。
更改
else if (j==null)
到
else if (j.equals(""))
编辑:这不能完全回答问题,但是已经回答了,所以我将其保留。