初学者一个小问题,想不通
编一个计算的小程序,TextField tf14 = new TextField("MAX_VALUE")
如果没改这个值,就设为无穷大,若改了就读出新的值到 x1ub
if (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。
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());
}
}
}
------解决方案--------------------if (tf14.getText() == "MAX_VALUE")
改成
if (tf14.getText().equals("MAX_VALUE"))
------解决方案-------------------- if 中的== 表示两个地址相等 而非内容相等 xxx.equals(“xxxx”)表示的才是内容相等 像楼上的那样改就对了