Java 为什么第二个变量取第一个变量的值?而块是独立的

Java 为什么第二个变量取第一个变量的值?而块是独立的,java,Java,我是一名java初学者,我们了解到,如果两个变量不在同一块中,那么它们彼此独立 如果entier1为false,我不理解为什么变量entier2为false 在第一种情况下,执行的是第一个集团,在第二个集团之后执行 如果第一个为假,则第二个集团接受第一个集团的“值” 我们有一个正确的例子: Enter number1 : 45 Entier 1 = 45 Enter number2 : 15 Entier 2 = 15 所以一切都是完美的,因为我有两个数字 但是如果entier1=txt,那么

我是一名java初学者,我们了解到,如果两个变量不在同一块中,那么它们彼此独立

如果entier1为false,我不理解为什么变量entier2为false

在第一种情况下,执行的是第一个集团,在第二个集团之后执行 如果第一个为假,则第二个集团接受第一个集团的“值”

我们有一个正确的例子:

Enter number1 : 45
Entier 1 = 45
Enter number2 : 15
Entier 2 = 15
所以一切都是完美的,因为我有两个数字

但是如果entier1=txt,那么一个字符串,然后在结果entier2=中输入一个数字2

例如,结果是:

Enter number1 : txt
> Enter a number 1 ! 
Enter number2 : Enter a number 2 !
因此,程序不验证number2的值,因为它取false,因为number1是false,这是不正确的

所以,我的问题是,如果数字1为假,为什么数字2为假


Ps:如果问题不清楚,请告诉我什么可以澄清它

如果我理解正确,你只能用hasnetint检查整数输入,但如果条件不正确,你不会丢弃不正确的输入,因此下一个条件将再次检查不正确的输入,并返回与之前相同的结果。在我的代码中,我使用in.nextLine,所以无论输入是否正确,我都将清空缓冲区。你也可以用这种技术做同样的事情。 如果您想获得正确的号码,然后再获得第二个号码,可以使用以下方法:

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num1 = getInt(in);
        int num2 = getInt(in);
        System.out.println(num1 + " " + num2);
    }

    public static int getInt(Scanner in) {
        System.out.print("Enter number: ");
        while (true) {
            String line = in.nextLine();
            try {
                int num = Integer.parseInt(line);
                return num;
            } catch (NumberFormatException ex) {
                System.out.print("Enter correct input!!\nEnter nubmer: ");
            }
        }
    }

我希望这对你有帮助。我们尝试获取输入,直到只包含数字,不再包含任何内容。

如果我理解正确,您可以使用entre.next并丢弃结果。然后使用while直到得到正确的号码,如果你想的话。如果我没有正确理解,请给我更多的信息是的,是的。如果输入两个数字,是正确的,但如果在程序中首先输入字符串,我将添加答案。我想这就是你想要的。你能重新打开我的问题吗?我的问题确实不太容易理解,所以我做了很多修改来澄清它:标题,正文。所以我想重新计算这个问题,如果您需要再次更改,请让我知道。是的,但在我的程序中,2块不同。因此entier2作为nothing与Entier1链接如果我理解正确,您只需使用hasNextInt检查整数输入,但如果条件不正确,您并没有丢弃不正确的输入,所以下一个条件将再次检查第二个数字的不正确输入。在我的代码中,我使用in.nextLine,所以无论输入是否正确,我都将清空缓冲区。你也可以用这种技术做同样的事情。我理解正确了吗?是的,没错,这只是缓冲区的历史记录?是的。因为你们并没有扔掉你们的缓冲区,在第二个条件下你们会得到同样的结果。
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num1 = getInt(in);
        int num2 = getInt(in);
        System.out.println(num1 + " " + num2);
    }

    public static int getInt(Scanner in) {
        System.out.print("Enter number: ");
        while (true) {
            String line = in.nextLine();
            try {
                int num = Integer.parseInt(line);
                return num;
            } catch (NumberFormatException ex) {
                System.out.print("Enter correct input!!\nEnter nubmer: ");
            }
        }
    }