日期:2014-05-20  浏览次数:20737 次

为什么会提示错误,逻辑哪里有问题。。。。
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调试后提示这里有问题。。。。我就是想不明白