gpt4 book ai didi

java - 卡在 while 循环中

转载 作者:行者123 更新时间:2023-11-30 10:35:06 25 4
gpt4 key购买 nike

我试图打印 z 的值作为输出,但我的代码没有完成执行..它到达了“here”行,但从未到达最后一行“z is”。

我猜 s = sc.nextInt(); 是问题所在。

public class Solution {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);
int x = 0;
int y = 0;
int z = 0;
int u = 0;
int n = sc.nextInt();
int s = sc.nextInt();
while(sc.hasNextInt()) {
if(s != -1){
y = s;
if(sc.hasNextInt()){
s = sc.nextInt();
}
}
while(s == -1){
x++;
System.out.println("s is "+s);
z = Math.abs(y - x) + u;
System.out.println("s is "+s);
System.out.println("x is " + x+ " y is "+ y+" z is "+z);
if(sc.hasNextInt()){
s = sc.nextInt();
System.out.println("s33 is "+s);
}
}
if(z != 0){
u = z;
}
x = 0;
y = 0;
System.out.println("here");
}
System.out.println("z is" +z);
}
}

谢谢。

最佳答案

它不会进入无限循环,而是您已经将两个值存储在 Scanner 中,您正在使用 hasNextInt() 检查它们。因此它始终为真并等待下一个输入进行检查。如果您继续输入 Int 值,它将处于相同的 while 循环中。输入非整数(如 String)以退出 while 循环,您的程序将结束。实际上,您正在等待两个 while 循环中的输入,因此它正在等待您的输入。

关于java - 卡在 while 循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41396307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com