我想知道为什么一个循环工作,而另一个循环虽然他们非常相似。Java - while循环表达式
dmCyl
循环我想循环直到输入正整数。这是不起作用的循环。但是,hgtCyl
循环会循环,直到用户输入一个int为止。看起来好像(dmCyl < 0)
循环完全被忽略了。这是为什么?
另外,工作的循环是否会将hgtCyl = scnr.nextInt();
放在或其外部。它的位置会改变什么吗?
谢谢!
编辑: 设置第一个while while while循环解决了这个问题。
再次感谢!
解决方案:
dmCyl = scnr.nextInt();
do{
System.out.print("please insert positive int");
dmCyl = scnr.nextInt();
}while (dmCyl < 0);
原始代码:
int dmCyl = 0;
int hgtCyl = 0;
Scanner scnr = new Scanner(System.in);
while (dmCyl < 0) {
System.out.print("Please enter an integer");
scnr.next();
}
dmCyl = scnr.nextInt();
这工作循环:
while (!scnr.hasNextInt()){
System.out.print("Please enter an integer");
scnr.next();
}
hgtCyl = scnr.nextInt();
作为一个规则,0永远不会小于0.所以你的第一个循环立即退出。 – shmosel
或进入循环时dmCyl的值是什么(并且首次测试dmCyl <0') –
'(dmCyl <0)'是'0 <0',它总是为false。 –