编一个计算的小程序,TextField tf14 = new TextField("MAX_VALUE")
如果没改这个值,就设为无穷大,若改了就读出新的值到 x1ubif (tf14.getText() == "MAX_VALUE") {
System.out.println("1");
x1ub = Double.MAX_VALUE;

} else {
System.out.println("2");
x1ub = Double.parseDouble(tf14.getText());

}
为什么tf14中的值没改(还是MAX_VALUE),而输出2,也就是到了else里面?

解决方案 »

  1.   

    你用的字符串的比较 应该用tf14.getText().equals();
    而不是 “ == ”
      

  2.   

    楼主,测试完毕,输出1。
    package group;import java.awt.TextField;public class g {
    public static void main(String[] args){
    TextField tf14 = new TextField("MAX_VALUE"); if (tf14.getText() == "MAX_VALUE") {
    System.out.println("1");
    //x1ub = Double.MAX_VALUE; } else {
    System.out.println("2");
    //x1ub = Double.parseDouble(tf14.getText()); } }
    }
      

  3.   

    if (tf14.getText() == "MAX_VALUE")
    改成
    if (tf14.getText().equals("MAX_VALUE"))
      

  4.   

      if 中的==  表示两个地址相等 而非内容相等  xxx.equals(“xxxx”)表示的才是内容相等  像楼上的那样改就对了