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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修復 else if 語句?

如何修復 else if 語句?

紫衣仙女 2023-08-09 15:28:28
我正在使用 intellij 和 java 制作一個程序,可以根據用戶的輸入計算用戶的成績。到目前為止,我已經使用掃描儀成功收集了用戶的輸入并得到了平均值。我正在使用平均值通過 else if 語句打印字母等級。但我的程序只打印出 F 級的字母等級,即使我輸入平均分數為 90 分,也不會打印任何其他等級。琴弦等級;    if (avg >= 90.0 ) {        grade = "A";    } else if (avg >=80.0) {        grade = "B";    } else if (avg >=70.0){        grade = "C"    } else if (avg >=60.0) {        grade = "D";    } else {        grade = "F";        System.out.println("Grade is  " + grade );    }}}我希望程序檢查所有其他 if 語句,但如果平均分數為 60 或更高,它不會打印成績語句,而只會顯示平均值。
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

問題是你的 print 語句位于 else 塊內,但你不想只在 else 時打印,你確實想始終打印,應該在 if-else 塊之外。


if(A){

   ....// here you are when A is true

 } else if(B){

   .... //here you are when A is false and B is true

 } else {

   .... //here you will be when A and B are false

 }

 System.out.println("grade is:"+ grade); //here you are outside the else block so It does not depend on A nor on B value



查看完整回答
反對 回復 2023-08-09
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

您必須分兩步完成,因為這里僅在一種情況下打?。?/p>

  1. 檢查屬于哪個范圍avg并設置等級

  2. 打印成績

if?(avg?>=?90.0)?{
????grade?=?"A";
}?else?if?(avg?>=?80.0)?{
????grade?=?"B";
}?else?if?(avg?>=?70.0)?{
????grade?=?"C";
}?else?if?(avg?>=?60.0)?{
????grade?=?"D";
}?else?{
????grade?=?"F";
}
System.out.println("Grade?is??"?+?grade);

另外,對于范圍問題,我剛剛發現NavigableMap可以像這樣使用

NavigableMap<Double,?String>?map?=?new?TreeMap<>();
map.put(0.0,?"F");
map.put(60.0,?"D");
map.put(70.0,?"C");
map.put(80.0,?"B");
map.put(90.0,?"A");
System.out.println("Grade?is?"?+?map.floorEntry(avg).getValue());


查看完整回答
反對 回復 2023-08-09
  • 2 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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