为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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


正在回答

5 回答

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

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

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

0 回复 有任何疑惑可以回复我~

第17行少了个大括号 }

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

https://img1.sycdn.imooc.com//5b603b1c00012c0909930519.jpg

拉闸,不知道错在哪

0 回复 有任何疑惑可以回复我~
#1

qq_仰面微笑i_0 提问者

你的第二个if的小括号里写错了,“=”在java里是赋值,而在那里需要的是比较,应该用“==”
2018-08-02 回复 有任何疑惑可以回复我~
#2

曼曼喜欢你 回复 qq_仰面微笑i_0 提问者

说的对。一个=是代表给变量赋值,两个=是代表“是”的意思。sex=="女" 就代表sex是"女"的意思。由于sex的变量属性为String字段,故在判断女字的时候,要给女字加上引号,即sex=="女"。
2018-08-03 回复 有任何疑惑可以回复我~
#3

读C加尚JAVA 回复 曼曼喜欢你

真是!
2018-08-04 回复 有任何疑惑可以回复我~

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("走错比赛了");

        }

        

        

        

}

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信