Java 为什么只交替显示输出?

Java 为什么只交替显示输出?,java,java-7,Java,Java 7,如果我第一次输入数字(>5),控制台上没有输出,但是如果我第二次输入数字,控制台上有输出。 所以我得到了一个可选的输出。 有人能解释为什么会这样吗 java.util.Scanner.nextInt()方法将输入的下一个标记扫描为int,并返回它。读取令牌后,另一个nextInt()-调用将读取(如名称所示)下一个整数。 我想你期待着这样的事情: public class Two { public static void main(String[] args) { Scanner o

如果我第一次输入数字(>5),控制台上没有输出,但是如果我第二次输入数字,控制台上有输出。 所以我得到了一个可选的输出。 有人能解释为什么会这样吗

java.util.Scanner.nextInt()方法将输入的下一个标记扫描为
int
,并返回它。读取令牌后,另一个
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());
    }
}
}
现在,读取的整数存储在变量
read
中,如果大于5,则打印出来。

java.util.Scanner.nextInt()方法将输入的下一个标记扫描为
int
,并返回它。读取令牌后,另一个
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());
    }
}
}

现在,读取的整数存储在变量
read
中,如果大于5,则打印该整数。

每隔一次输入就输出一次的原因是提示
扫描仪
对象在循环系统中收集两次输入。每次在
扫描仪上调用
next…
方法时,都会提示用户

因此,在
while
循环的条件下,您要求用户输入一个整数值,然后与
5
进行比较。然后,在print语句中再次调用
nextInt()
方法,该方法将再次提示用户输入另一个整数值

因此,给定当前循环的一系列6个整数输入,
6 2 10 4
,循环将只打印
2
4

相反,您应该在循环外提示并存储一次,然后使用条件进行测试,并在循环内打印后重新提示,就像这样

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int read;

    while((read = scanner.nextInt()) > 5)
    {
        System.out.println(read);
    }
}

每隔一次输入就获得一次输出的原因是,您正在提示
扫描仪
对象在循环系统中收集两次输入。每次在
扫描仪上调用
next…
方法时,都会提示用户

因此,在
while
循环的条件下,您要求用户输入一个整数值,然后与
5
进行比较。然后,在print语句中再次调用
nextInt()
方法,该方法将再次提示用户输入另一个整数值

因此,给定当前循环的一系列6个整数输入,
6 2 10 4
,循环将只打印
2
4

相反,您应该在循环外提示并存储一次,然后使用条件进行测试,并在循环内打印后重新提示,就像这样

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int read;

    while((read = scanner.nextInt()) > 5)
    {
        System.out.println(read);
    }
}

当您第二次调用
nextInt()
时,您将尝试从控制台读取另一个
int
。您期望得到什么?您正在打印每个可选输入。当您调用
nextInt()时
第二次,您将尝试从控制台读取另一个
int
。您希望看到什么?您正在打印所有可选输入。非常感谢!事实上,我正在尝试打印而不存储它。非常感谢!事实上,我只是想在不储存的情况下打印。