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

新手上路,求高手帮助!!高分!!!
import java.util.*;

public class Error {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入年龄:");
int nl = input.nextInt();
System.out.println("请输入性别:");
String boy = input.next();
if ((nl >= 7) || ((nl>=5) && boy == "男")) {
System.out.print("可以搬动桌子");
} else {
System.out.println("不能搬动桌子");
}
}
}

输入5和男,为什么输出的是不能搬动桌子??????

------解决方案--------------------
初学者常见问题,对象比较请别用 ==,这个就变成比较两个对象的内存地址了。
而 String 是对象,切记。

所以:
boy == "男" 
修改为:
"男".equals(boy)
------解决方案--------------------
String 类型的比较是否相等用equals方法("男".equals(boy))。用== 是比较两个对象的内存地址是否相同。这两个的地址不同所以没有执行System.out.print("可以搬动桌子");这句。(个人见解不对望改正)。