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

这两例代码,为什么一个报错,一个可以正常运行

https://img4.mukewang.com/5b5e9d56000154c306410450.jpg,这是我第一次敲得,输出的三个代码块都是在第一个条件的{ }里,然后他提示Syntax error on token "else", delete this token(令牌“else”语法错误,请删除此令牌

https://img.mukewang.com/5b5e9d5700012b8706000448.jpg第二张图,是改过以后的,我把第三个代码块放在了第一个条件的{ }外,可以正常运行。这是为什么


提问者:qq_仰面微笑i_0 2018-07-30 13:12

个回答

  • 慕先生5542242
    2018-07-30 13:50:42
    已采纳

    第一个if成立的条件是成绩大于80,只有大于80,才能进行下一个分支,即讨论男女

    第一个if都不成立则直接打印淘汰

    所以第一第二个代码块应该在第一个if条件的{}中   第三个代码块则是不满足第一个条件的结果则要在第一个if条件的{}外

  • _伤己
    2018-08-03 10:11:05

    第17行少了个大括号 }

  • 曼曼喜欢你
    2018-08-03 00:11:22

    你想想,最外层的if{}else{}本来就是并行的。你非要把最外层的else写在if里面,你写的是if{else{}}当然是错误的。语法错误。{}内表示当前的语法内容,if{}写满足if的条件内容语句,else{}写前者条件反之的内容语句。并行的。不是包含和被包含的关系。

  • 读C加尚JAVA
    2018-07-31 18:34:24

    https://img3.mukewang.com/5b603b1c00012c0909930519.jpg

    拉闸,不知道错在哪

  • 慕粉2254381608
    2018-07-30 23:18:57

    public class HelloWorld {

        public static void main(String[] args) {

    int score = 81;

    String sex = "男";

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

               if(score>80){

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

               } else if(score> 60){

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

              }

            else{

              System.out.println("淘汰了");

            }

                

            }else{

                System.out.println("走错比赛了");

            }

            

            

            

    }

    }