首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

为什么会提示异常,逻辑哪里有有关问题。

2013-01-05 
为什么会提示错误,逻辑哪里有问题。。。。import javax.swing.JOptionPanepublic class jie3_2_why {public s

为什么会提示错误,逻辑哪里有问题。。。。
import javax.swing.JOptionPane;

public class jie3_2_why {


public static void main(String[] args) {
String f1=
JOptionPane.showInputDialog(null,
"请输入第一个数",
JOptionPane.QUESTION_MESSAGE);
String f2=
JOptionPane.showInputDialog(null,
"请输入第二个数",
JOptionPane.QUESTION_MESSAGE);
String f3=
JOptionPane.showInputDialog(null,
"请输入第三个数",
JOptionPane.QUESTION_MESSAGE);
Integer num1 = Integer.getInteger(f1);
Integer num2 = Integer.getInteger(f2);
Integer num3 = Integer.getInteger(f3);
int change = 0;
if(num1 > num2 )//eclipse调试后提示这里有问题。。。。我就是想不明白
{
change = num1;
num1 = num2;
num2 = change;
}
else if(num2 > num3 )
{
change = num2;
num2 = num3;
num3 = change;
}
JOptionPane.showMessageDialog(null, num1+"<="+num2+"<="+num2);
}

}
[解决办法]

public static void main(String[] args) {
String f1=JOptionPane.showInputDialog(null,"请输入第一个数",JOptionPane.QUESTION_MESSAGE);
String f2=JOptionPane.showInputDialog(null,"请输入第二个数",JOptionPane.QUESTION_MESSAGE);
String f3=JOptionPane.showInputDialog(null,"请输入第三个数",JOptionPane.QUESTION_MESSAGE);
Integer num1 = Integer.getInteger(f1);
Integer num2 = Integer.getInteger(f2);
Integer num3 = Integer.getInteger(f3);
System.out.println("num1"+num1);
System.out.println("num2"+num2);
System.out.println("num3"+num3);
int change = 0;
if(num1 > num2 )//eclipse调试后提示这里有问题。。。。我就是想不明白
{
change = num1;
num1 = num2;
num2 = change;
}
else if(num2 > num3 )
{
change = num2;
num2 = num3;
num3 = change;
}
JOptionPane.showMessageDialog(null, num1+"<="+num2+"<="+num2);
}

}

我在你的代码里面添加了几个输出语句,你实验一下就知道自己哪里错了。。要学会调错
[解决办法]
Integer 是int的封装类,你用Integer对象做比较,实际上是比较不是你输入的数
你这里用Integer.parseInt(String s)就行了啊:

int num1 = Integer.parseInt(f1);
int num2 = Integer.parseInt(f2);
int num3 = Integer.parseInt(f3);
[解决办法]
public static void main(String[] args) {
String f1=JOptionPane.showInputDialog("输入乘数" );
String f2=JOptionPane.showInputDialog(null,"请输入第二个数",JOptionPane.QUESTION_MESSAGE);
String f3=JOptionPane.showInputDialog(null,"请输入第三个数",JOptionPane.QUESTION_MESSAGE);
System.out.println("f1:"+f1);
//Integer num1 = Integer.getInteger(f1);
int num1=Integer.parseInt(f1);
int num2=Integer.parseInt(f2);
int num3=Integer.parseInt(f3);
/*Integer num1 = Integer.getInteger(f1);//楼主这些语句写错了
Integer num2 = Integer.getInteger(f2);
Integer num3 = Integer.getInteger(f3);*/
System.out.println("num1:"+num1);
System.out.println("num2:"+num2);
System.out.println("num3:"+num3);
int change = 0;
if(num1 > num2 )//eclipse调试后提示这里有问题。。。。我就是想不明白


{
change = num1;
num1 = num2;
num2 = change;
}
else if(num2 > num3 )
{
change = num2;
num2 = num3;
num3 = change;
}
JOptionPane.showMessageDialog(null, num1+"<="+num2+"<="+num2);
}

}


代码我帮你调好了,应该没问题了。。
调试时的代码都还留着,主要希望你能学一些自己调试的流程。
[解决办法]
引用:
Integer 是int的封装类,你用Integer对象做比较,实际上是比较不是你输入的数
你这里用Integer.parseInt(String s)就行了啊:

int num1 = Integer.parseInt(f1);
int num2 = Integer.parseInt(f2);
int num3 = Integer.parseInt(f3);
……

Integer num1 = Integer.parseInt(f1);
Integer num2 = Integer.parseInt(f2);
Integer num3 = Integer.parseInt(f3);
也是可以的,你可以自己试一试,楼主主要是因为getInteger(f1);这个方法用的不对。

热点排行