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和男,为什么输出的是不能搬动桌子??????

解决方案 »

  1.   

    if ((nl >= 7) || ((nl>=5) && boy == "男")))这里的少个括号
      

  2.   

    if ((nl >= 7) || ((nl>=5) && boy == "男")))这里的少个括号
      

  3.   

    初学者常见问题,对象比较请别用 ==,这个就变成比较两个对象的内存地址了。
    而 String 是对象,切记。所以:
      boy == "男" 
    修改为:
      "男".equals(boy)
      

  4.   

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