亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

可以運行出結果,但有什么問題嗎?

System.out.println(age>=60?"old":age>30?"中年":age>=18?"青年":"童年"); 這樣也可以出結果,有什么邏輯錯誤吧?對比 System.out.println(age >= 60 ? "老年" : age >= 40 && age < 60 ? "中年" : 18<= age || age<40 ? "少年" : "童年");

正在回答

6 回答

就看的懂第一條。

感覺第一條代碼要比第二條代碼好很多,邏輯錯誤好像沒有


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

冰火犀牛 提問者

非常感謝!
2016-09-13 回復 有任何疑惑可以回復我~

幫你運行了一下,如圖http://img1.sycdn.imooc.com//57d21c9b0001c14709160545.jpg

有這幾個小問題,藍條的地方,判斷有問題,應該是18>=age || age<40 ,改了之后,兩個代碼完全沒什么區別,執行結果都一樣

其次,第二個代碼,執行的順序有問題,比如,age是17的時候,它先判斷age是不是>=60,如果大于,則是老年,如果不大于,則執行接下來的 判斷,age>=40 && age <60??? 這里的age< 60,已結重復了,因為執行這條代碼的前提就是age<60,所以可以不要寫,代碼中能省則省,降低代碼的重復性很重要,希望能解決你的問題,望采納

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

冰火犀牛 提問者

謝謝謝謝!
2016-09-13 回復 有任何疑惑可以回復我~

第二條條件有點多余,且18<=age||age<40,結果會顯示17也是少年,人生會沒有童年了。

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

冰火犀牛 提問者

哈哈的確是欸~
2016-09-13 回復 有任何疑惑可以回復我~

沒有什么錯誤

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

第二句有代碼冗余。

1:age >= 60 ? "老年" : age >= 40 && age < 60 ? 首先第一個條件是age是否大于60,是的話“老年”,不是的話再判斷age是否大于等于40且小于60。前面已經判斷過不是大于等于60了,那肯定是小于60,就不用再判斷了。

2:同理已經判斷過age不大于等于40,就不用再判斷了。

3:&&shi 并且,||是或者.

1 回復 有任何疑惑可以回復我~

好像沒有邏輯錯誤,就是可讀性不高

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

舉報

0/150
提交
取消

可以運行出結果,但有什么問題嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號