Java 读取数字直到满足条件
我试图要求用户继续键入数字,直到他们键入-1,一旦他们这样做,代码会说谢谢,再见!我现在有点卡住了,因为我的循环是无限循环,我试图不使用迭代来解决它。这就是我所拥有的Java 读取数字直到满足条件,java,while-loop,java.util.scanner,Java,While Loop,Java.util.scanner,我试图要求用户继续键入数字,直到他们键入-1,一旦他们这样做,代码会说谢谢,再见!我现在有点卡住了,因为我的循环是无限循环,我试图不使用迭代来解决它。这就是我所拥有的 Scanner reader = new Scanner(System.in); System.out.println("Type numbers: "); int num = Integer.parseInt(reader.nextLine()); while (num < -1 || num > -1) {
Scanner reader = new Scanner(System.in);
System.out.println("Type numbers: ");
int num = Integer.parseInt(reader.nextLine());
while (num < -1 || num > -1) {
System.out.println(num);
if (num == -1) {
System.out.println("Thank you and see you later!");
break;
}
}
Scanner reader=新的扫描仪(System.in);
System.out.println(“类型号:”);
int num=Integer.parseInt(reader.nextLine());
而(num<-1 | num>-1){
系统输出打印项数(num);
如果(num==-1){
System.out.println(“谢谢,待会儿见!”);
打破
}
}
您需要读取循环中的输入。您只需执行一次(在进入循环之前),因此num的值永远不会更改。此外,您还可以使用while(num!=-1)
所以最终,你会想要这样的东西:
Scanner reader = new Scanner(System.in);
System.out.println("Type numbers: ");
int num = 0;
while (num != -1) {
num = Integer.parseInt(reader.nextLine());
if (num == -1) {
System.out.println("Thank you and see you later!");
}else{
System.out.println(num);
}
}
请尝试以下代码:
Scanner reader = new Scanner(System.in);
int num = 0;
System.out.println("Type numbers: ");
while(true){
//get user input
num = Integer.parseInt(reader.nextLine());
if(num == -1){
System.out.println("Thank you and see you later!");
break;
}
}
您的循环是无限的,因为您使用了最初输入的相同的
num
值。它在循环中从不改变,也没有机会改变,明白吗?@SashaSalauyou是的,我知道这就是问题所在,我只是不知道你能把Integer.parseInt(reader.nextLine())放进去;就其本身而言,我认为您必须始终将其分配给一个变量。如果您在条件满足后立即中断,则无需在while()
@Chris中检查它,因为您每次输入一个数字时,它实际上并不经过循环,并且0总是在输入的数字之后打印,因为num=0,并且从不打印changes@Nabz你说得对。我做了一个编辑来清理它。这是可行的,但我希望“类型编号:”在输出中只显示一次,我有这个,但我不想让类型编号反复显示,只是在循环之前放上“类型编号”。