好的,所以此程序尝试显示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");
}