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

代码问题,为什么会同时输出进入女子决赛和输入错误啊

public class Exerc17 {

public static void main(String[] args){

int score=94;

String sex="女";

if(score>80){

if(sex.equals("女")){

System.out.println("进入女子决赛");

}if(sex.equals("男")){

System.out.println("进入男子决赛");

}else{

System.out.println("输入错误");

}

}else{

System.out.println("不能进入决赛");

}

}

}


提问者:kiss仔仔 2016-04-21 10:29

个回答

  • 北城殇歌
    2016-04-21 10:56:31
    已采纳

    public class Exerc17 {

    public static void main(String[] args){

    int score=94;

    String sex="女";

    if(score>80){

    if(sex.equals("女")){

    System.out.println("进入女子决赛");

    }else if(sex.equals("男")){

    System.out.println("进入男子决赛");

    }else{

    System.out.println("输入错误");

    }

    }else{

    System.out.println("不能进入决赛");

    }

    }

    }


  • 风停啦
    2016-04-21 13:55:05

    public class Hello {
        public static void main (String[] args) {
            int score = 90;
            String sex = "女";
            if (score >80) {
                if (sex.equals("女")) {
                    System.out.println("进入女子组决赛");
                }else {
                    System.out.println("进入男子组决赛");
                }
            }else {
                System.out.println("不进入决赛");
            }
        }
    }

    注意缩进和对齐,这样就不会看错对应的if-else,条理很清晰!要养成一个好习惯,这样可以避免很多不必的麻烦

  • 慕的地0971735
    2016-04-21 11:17:23

    else在if(score>80)的条件下,如果程序进行到socre>80时,开始识别你之后if语句中的条件,其中string="女",输出”进入女子决赛“;但程序是按照你编写的顺序一条条识别的,当进行完if(sex.equals("女"))的语句时,进入下一句if(sex.equals("男")),显然这不是男的,所以进行下一个else的条件,输出“输入错误”。

  • 北城殇歌
    2016-04-21 10:55:54

    public class Exerc17 {

    public static void main(String[] args){

    int score=94;

    String sex="女";

    if(score>80){

    if(sex.equals("女")){

    System.out.println("进入女子决赛");

    }else if(sex.equals("男")){

    System.out.println("进入男子决赛");

    }else{

    System.out.println("输入错误");

    }

    }else{

    System.out.println("不能进入决赛");

    }

    }

    }