问答详情
源自:4-4 Java条件语句之嵌套 if

为什么输入“女”之后会在男子组决赛

 int score = a.nextInt();

   String  sex = a.next();;

   if(score>=80)

{

if(sex=="女")

{

System.out.println("参加女子决赛");

}

else

{

System.out.println("参加男子决赛");

}

}

else

{

System.out.println("未能参加决赛");

}


提问者:慕粉4125941 2017-01-31 08:55

个回答

  • 时光流逝我心永恒
    2017-01-31 10:55:55
    已采纳

    我没调试,应该是字符串类型的比较应该用.equles();也就是sex.equles("女");你试试

  • qq_南山_5
    2017-01-31 23:12:40

    重开程序运行第一次可以,后面就不行了,识别成:女女nünü女

  • qq_南山_5
    2017-01-31 19:24:12

    刚刚我的jdk出问题了,重新安装了,就好了。。当然字符串用equals

  • 我想出去浪可是没人带
    2017-01-31 17:33:42

    在编程中,通常比较两个字符串是否相同的表达式是“==”,但在java中不能这么写。在java中,用的是equals();

    例:A字符串和B和字符串比较:

    if(A.equals(B)){

    }

    返回true 或false.

    String 的equals 方法用于比较两个字符串是否相等。由于字符串是对象类型,所以不能用简单的“==”判断。而使用equals比较两个对象的内容是否相等。

    注意:

    equals()比较的是对象的内容(区分字母的大小写格式),但是如果使用“==”比较两个对象时,比较的是两个对象的内存地址,所以不相等。即使它们内容相等,但是不同对象的内存地址也是不相同的。

    public void testScan(){
        Scanner a = new Scanner(System.in);
        System.out.println("***请输入成绩***");
        int score = a.nextInt();
        System.out.println("***请输入性别");
        String  sex = a.next();
    
        if(score>=80){
            if(sex.equals("女")){
                System.out.println("参加女子决赛");
            }else{
                System.out.println("参加男子决赛");
            }
        }else{
            System.out.println("未能参加决赛");
        }
    }


  • qq_南山_5
    2017-01-31 14:41:59

    应该是汉字识别的问题啊。。

  • qq_南山_5
    2017-01-31 13:59:01

    输入女,识别的女女nvnv女


  • 吕mooc
    2017-01-31 11:31:48

    public static void main(String[] args) {

    Scanner a=new Scanner(System.in);

    System.out.print("score:");

    int score = a.nextInt();

    System.out.print("sex:");

      String  sex = a.next();

      if(score>=80)

    {

      if(sex.equals("女")) 

    {

    System.out.println("参加女子决赛");

    }

    else

    {

    System.out.println("参加男子决赛");

    }

    }

    else

    {

    System.out.println("未能参加决赛的"+sex+"生");

    }

      a.close();

    }