為什么不管我設置score為多少分,輸出結果都是:等級D 呢?
#include<stdio.h>
int main() {
int score = 87;?
?switch(score){
? ?case 1:score>=90&&score<=100;printf("等級A") ;break;
? case2:score>=80&&score<=90;printf("等級B"); break;
? case3:score>=60&&score<80; printf("等級C");break;
? ?default:score<60; printf("等級D");break;
?} ??
?return 0;?
}
2015-12-10
因為score的原始值是87,而switch(score)是直接判斷score的值,case 1 ?就代表當score的值為1的時候,case 1: ?冒號后面即是score == 1時執(zhí)行的語句,所以說最score落到default里了,輸出等級D。下面是根據(jù)源代碼做的一點修改就能實現(xiàn)判斷。只需要判斷score的十位數(shù)
如果懂了的話就采納一下喲!
2015-12-02
你好像沒理解case后面應寫什么。
switch會將score的值與下面case后面的值(case之后,冒號之前)做匹配,匹配上就執(zhí)行那個case冒號后面的語句。score和所有case都不匹配的話,就執(zhí)行default: 后面的語句。
所以,你這樣寫,三個case分別是1 2 3,只有在score是1 2 3時才會執(zhí)行相應case后的語句。而score是87,只會跳到default那里,執(zhí)行default后面的語句。
2015-12-01
public static void main(String[] args) {
int score = 1;?
switch(score)
{?
case 1:
System.out.println("A");
break;
case 2:
System.out.println("B");
default :
System.out.println("C");
}?
}
}
原理一樣,湊合看