java程序中的输出问题
好的,这个程序试图显示1-4位整数的中间数字,如果它有偶数个数字,它应该显示没有中间数字,但是我不能让它正确地输出答案,下面是代码:java程序中的输出问题,java,Java,好的,这个程序试图显示1-4位整数的中间数字,如果它有偶数个数字,它应该显示没有中间数字,但是我不能让它正确地输出答案,下面是代码: public class digit { public static void main(String[] arg) { int MyInt1, MyInt2, MyInt3, MyInt4; EasyReader keyboard = new EasyReader(); // Get the 1-4 dig
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");
}
}
}
公共类数字{
公共静态void main(字符串[]arg){
int MyInt1、MyInt2、MyInt3、MyInt4;
EasyReader键盘=新建EasyReader();
//获取1-4位整数
int MyInt=keyboard.readInt(“输入整数:”);
//计算中间数字
MyInt1=MyInt/10;
if(MyInt1<1){
系统输出打印(“中间数字为:”);
System.out.println(MyInt);
MyInt2=MyInt1/10;
}else if(MyInt2<1){
System.out.println(“无中间数字”);
MyInt3=MyInt2/10;
}else if(MyInt3<1){
系统输出打印(“中间数字为:”);
System.out.println(MyInt2);
MyInt4=MyInt3/10;
}else if(MyInt4<1){
System.out.println(“无中间数字”);
}
}
}
我还在开始时导入一个包
我得到的一个示例输出是,如果我输入1234作为我得到的整数:“123412No middle digital”作为我的答案,我肯定对else if语句做了一些错误,我想,但我不知道它是什么。感谢您的帮助。缩进没有定义使用
if
语句执行什么和不执行什么
如果不满足第一个条件,MyInt2
将永远不会被定义,因此下一个条件也将失败。在原始代码中,如果MyInt1<1
为真,则您将打印中间数字为:
,并计算MyInt2
的值。但是,如果条件为false,您将检查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");
}
//计算中间数字
MyInt1=MyInt/10;
MyInt2=MyInt1/10;
MyInt3=MyInt2/10;
MyInt4=MyInt3/10;
if(MyInt1<1){
系统输出打印(“中间数字为:”);
System.out.println(MyInt);
}else if(MyInt2<1){
System.out.println(“无中间数字”);
}else if(MyInt3<1){
系统输出打印(“中间数字为:”);
System.out.println(MyInt2);
}else if(MyInt4<1){
System.out.println(“无中间数字”);
}
一些评论:
- 类名通常用
,变量名用大写
小写
- 中间的数字更容易从表示数字的字符串中提取
- 表达式
将始终向零舍入str.length()/2
Scanner input = new Scanner(System.in);
System.out.print("Give an integer number from 1 to 4 digits: ");
String number = input.next();
switch(input.length())
{
case 3:
System.out.println("The middle is " + input[1]);
break;
case 4:
System.out.println("The middles are " + input[1] + " " + input[2]);
break;
default:
System.out.println("You are inserted wrong number, there aren't middles");
}
Scanner input = new Scanner(System.in);
System.out.print("Give an integer number from 1 to 4 digits: ");
String number = input.next();
switch(input.length())
{
case 3:
System.out.println("The middle is " + input[1]);
break;
case 4:
System.out.println("The middles are " + input[1] + " " + input[2]);
break;
default:
System.out.println("You are inserted wrong number, there aren't middles");
}