好的,所以此程序尝试显示1-4位整数的中间数字,如果它具有偶数个数字,则应显示没有中间数字,但是我无法正确输出答案,这是代码:

public class digit {
    public static void main(String[] arg) {
        int MyInt1, MyInt2, MyInt3, MyInt4;
        EasyReader keyboard = new EasyReader();
        // Get the 1-4 digit integer
        int MyInt = keyboard.readInt("Enter your integer: ");
        // Calculate the middle digit
        MyInt1=MyInt/10;
        if (MyInt1 < 1) {
            System.out.print("The middle digit is: ");
            System.out.println(MyInt);
        MyInt2=MyInt1/10;
        }else if (MyInt2 < 1) {
            System.out.println("No middle digit");
        MyInt3=MyInt2/10;
        }else if (MyInt3 < 1) {
            System.out.print("The middle digit is: ");
            System.out.println(MyInt2);
        MyInt4=MyInt3/10;
        }else if (MyInt4 < 1) {
            System.out.println("No middle digit");
        }
    }
}


我一开始也导入了一个包。

我得到的示例输出是,如果我输入1234作为我得到的整数:'123412No middle digit'作为我的答案,我肯定在else if语句上做错了,但我不知道它是什么。感谢帮助,谢谢

最佳答案

缩进不定义使用if语句执行的内容和不执行的内容。

如果您不满足第一个条件,则不会定义MyInt2,因此下一个条件也将失败。在原始代码中,如果MyInt1 < 1为true,则将打印The middle digit is:并计算MyInt2的值。但是,如果条件为假,则将检查MyInt2 < 1,但MyInt2是否未定义,因为只有在第一个条件为true时才计算(在原始代码中)。

这样的事情应该起作用:

// Calculate the middle digit
MyInt1=MyInt/10;
MyInt2=MyInt1/10;
MyInt3=MyInt2/10;
MyInt4=MyInt3/10;
if (MyInt1 < 1) {
    System.out.print("The middle digit is: ");
    System.out.println(MyInt);
}else if (MyInt2 < 1) {
    System.out.println("No middle digit");
}else if (MyInt3 < 1) {
    System.out.print("The middle digit is: ");
    System.out.println(MyInt2);
}else if (MyInt4 < 1) {
    System.out.println("No middle digit");
}

10-04 18:33