为什么只交替显示输出?
Why is output shown only alternately?
public class Two {
public static void main(String[] args) {
Scanner obj = new Scanner(System.in);
while(obj.nextInt() > 5)
{
System.out.println(obj.nextInt());
}
}
}
如果我第一次输入数字 (> 5),控制台上没有输出,但如果我第二次输入数字,控制台上有输出。
所以我交替得到一个输出。
谁能解释为什么会这样?
java.util.Scanner.nextInt() 方法将输入的下一个标记扫描为 int
和 returns。读取令牌后,另一个 nextInt()
-Call 将读取(如名称所示)next 整数。
我想你在期待这样的事情:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int read;
while((read = scanner.nextInt()) > 5)
{
System.out.println(read);
}
}
现在读取的整数存储在变量 read
中并打印,如果它大于五。
你每隔一个输入就得到输出的原因是你提示 Scanner
对象在你的循环系统中收集输入两次。每次您在 Scanner
上调用 next...
方法时,您都会提示用户。
因此,在 while
循环的条件下,您要求用户输入一个整数值,然后将其与 5
进行比较。然后,在您的 print 语句中再次调用 nextInt()
方法,该方法将再次提示用户输入另一个值整数。
因此,给定当前循环 6 2 10 4
的一系列 6 个整数输入,您的循环将仅打印 2
和 4
.
相反,您应该在循环外提示并存储一次,然后使用条件进行测试并在循环内打印后重新提示,就像这样...
int input = obj.nextInt();
while (input > 5){
System.out.println(input);
input = obj.nextInt();
}
public class Two {
public static void main(String[] args) {
Scanner obj = new Scanner(System.in);
while(obj.nextInt() > 5)
{
System.out.println(obj.nextInt());
}
}
}
如果我第一次输入数字 (> 5),控制台上没有输出,但如果我第二次输入数字,控制台上有输出。 所以我交替得到一个输出。 谁能解释为什么会这样?
java.util.Scanner.nextInt() 方法将输入的下一个标记扫描为 int
和 returns。读取令牌后,另一个 nextInt()
-Call 将读取(如名称所示)next 整数。
我想你在期待这样的事情:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int read;
while((read = scanner.nextInt()) > 5)
{
System.out.println(read);
}
}
现在读取的整数存储在变量 read
中并打印,如果它大于五。
你每隔一个输入就得到输出的原因是你提示 Scanner
对象在你的循环系统中收集输入两次。每次您在 Scanner
上调用 next...
方法时,您都会提示用户。
因此,在 while
循环的条件下,您要求用户输入一个整数值,然后将其与 5
进行比较。然后,在您的 print 语句中再次调用 nextInt()
方法,该方法将再次提示用户输入另一个值整数。
因此,给定当前循环 6 2 10 4
的一系列 6 个整数输入,您的循环将仅打印 2
和 4
.
相反,您应该在循环外提示并存储一次,然后使用条件进行测试并在循环内打印后重新提示,就像这样...
int input = obj.nextInt();
while (input > 5){
System.out.println(input);
input = obj.nextInt();
}