❶ 請教CASE語句在c語言中的用法
switch(表達式){
case常量表達式1: 語句1;
case常量表達式2: 語句2;
…
case常量表達式n: 語句n;
default : 語句n+1;
}
其語義是:計算表達式的值。 並逐個與其後的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時, 即執行其後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。 如表達式的值與所有case後的常量表達式均不相同時,則執行default後的語句。
void main(){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");
case 2:printf("Tuesday\n");
case 3:printf("Wednesday\n");
case 4:printf("Thursday\n");
case 5:printf("Friday\n");
case 6:printf("Saturday\n");
case 7:printf("Sunday\n");
default:printf("error\n");
}
}
本程序是要求輸入一個數字,輸出一個英文單詞。但是當輸入3之後,卻執行了case3以及以後的所有語句,輸出了Wednesday 及以後的所有單詞。這當然是不希望的。為什麼會出現這種情況呢?這恰恰反應了switch語句的一個特點。在switch語句中,「case 常量表達式」只相當於一個語句標號, 表達式的值和某標號相等則轉向該標號執行,但不能在執行完該標號的語句後自動跳出整個switch 語句,所以出現了繼續執行所有後面case語句的情況。 這是與前面介紹的if語句完全不同的,應特別注意。為了避免上述情況, C語言還提供了一種break語句,專用於跳出switch語句,break 語句只有關鍵字break,沒有參數。在後面還將詳細介紹。修改例題的程序,在每一case語句之後增加break 語句, 使每一次執行之後均可跳出switch語句,從而避免輸出不應有的結果。
❷ c語言switch case語句是什麼
switch (表達式)
{
case 常量表達式1:語句1
case 常量表達式2:語句2
......
case 常量表達式n:語句n
default:語句n+1
}
執行過程:
1、首先計算「表達式」的值,假設為m。
2、從第一個case開始,比較「整型數值1」和m,如果它們相等,就執行冒號後面的所有語句,也就是從「語句1」一直執行到「語句n+1」,而不管後面的case是否匹配成功。
3、如果「整型數值1」和m不相等,就跳過冒號後面的「語句1」,繼續比較第二個case、第三個case……一旦發現和某個整型數值相等了,就會執行後面所有的語句。假設m和「整型數值5」相等,那麼就會從「語句5」一直執行到「語句n+1」。
4、如果直到最後一個「整型數值n」都沒有找到相等的值,那麼就執行default後的「語句n+1」。
遵守switch語句規則
任何switch語句都必須遵循以下規則:
1、只能針對基本數據類型中的整型類型使用switch,這些類型包括int、char等。對於其他類型,則必須使用if語句。
2、switch()的參數類型不能為實型 。
3、case標簽必須是常量表達式(constantExpression),如42或者'4'。
4、case標簽必須是唯一性的表達式;也就是說不允許兩個case具有相同的值。
❸ C語言中switch case語句的問題
switch(int(I/100000))
{
case0:
printf("獎金總數k=%d ",a);
break;
case1:
printf("獎金總數k=%d ",a+b);
break;
case2:
case3:
printf("獎金總數k=%d ",a+b+c);
break;
case4:
case5:
printf("獎金總數k=%d ",a+b+c+d);
break;
case6:
case7:
case8:
case9:
printf("獎金總數k=%d ",a+b+c+d+e);
break;
default:
printf("獎金總數k=%d ",a+b+c+d+e+f);
break;
}
❹ 討論C語言中的switch-case語句。
a=+1改為a+=1,所有的同理
❺ C語言中case和when的用法
C語言中沒有when,與case搭配使用的是switch。switch......case是C語言中一種選擇匹配命令。
下面通過具體的實例來說明其用法:
inta=2,b;
switch(a)
{
case0://如果a=0,執行該case中的語句
{
b=a;
break;
}
case1://如果a=1,執行該case中的語句
{
b=a+1;
break;
}
case2://如果a=2,執行該case中的語句
{
b=a+2;
break;
}
default://如果a與上面所以case後面的值都不相等,執行default中的語句
b=0;
}
❻ C語言中關於case語句
1.定義就免了
2.程序要求從鍵盤輸入一字元,當輸入的字元不為回車時始終執行do...while循環,當輸入的字元為case中的任意一個時,執行那兩條自加語句,當不為case所標識的字元時,只執行第二句,因為沒有 break
3.最後回車結束得出結果 v0=13,v1=4,v2=12
❼ C語言中switch case用法
while,for都是循環語句。。
switch,case則是條件語句,相當於if-elseif-else語句
for語句:
int
s=0;
for(int
i=1;i<=10;i++)
s+=i;
//
從1加到10的和
switch語句:
switch
(x)
{
case
1:
a=b;break;
case
2:
a=c;break;
}
❽ C語言:switch語句用法
case
(c>=90
&&
c<=100):
case後面的必須是一個常量。
你這個可以先將成績除以10,再用switch
#include
"stdio.h"
void
main()
{
char
c;
/*這里別用char,改成:int
c,d;*/
scanf("%c",&c);
/*這一句也改成scanf("%d",&c);最好前面再加一句,printf("請輸入成績:");
在這句後面加一句d=c/10;*/
switch(c)
/*然後switch裡面用d來判斷,switch(d)*/
{
case
(c>=90
&&
c<=100):printf("成績的等級為:A.\n");
break;
/*改成:
case
(10):
case
(9):printf("成績的等級為:A.\n");break;
case
(c>=80
&&
c<=89):printf("成績的等級為:B.\n");
break;
/*改成:case
(8):printf("成績的等級為:B.\n");
break;
}
}
因為90到100之間的數經過除以10再取整以後就變成了9;100/10等於10,又因為case調用同一個語句的時候允許就在最後一個語句寫上那個語句,而將前面的那幾個省略掉,所以case
(10):後面的就省掉了,當然寫上也不會錯。
你的補充的那個,你可以把它分開表示,就像我給你弄的那個case
(c>=90
&&
c<=100):printf("成績的等級為:A.\n");
break;
/*改成:
case
(10):
case
(9):printf("成績的等級為:A.\n");break;
雖然有點糾纏不清的感覺,但是希望對解決你的疑問有一定的幫助,呵呵。。。
❾ c語言中while 、for、switch、case的用法
while,for都是循環語句。。switch,case則是條件語句,相當於if-elseif-else語句 for語句:int
s=0;
for(int
i=1;i<=10;i++)
s+=i;
//
從1加到10的和 switch語句:switch
(x){
case
1:
a=b;break;
case
2:
a=c;break;
}
❿ c語言中case的意思和用法
c語言中case是和switch一起使用的,構成switch—case語句,進行判斷選擇,case是用來表示選擇結構的。
switch語句的一般形式為:
switch(表達式){
case 常量表達式1: 語句1;
case 常量表達式2: 語句2;
…
case 常量表達式n: 語句n;
default: 語句n+1;}
其語義是:計算表達式的值。 並逐個與其後的常量表達式值相比較,當表達式的值與某個常量表達式的值相等時, 即執行其後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。如表達式的值與所有case後的常量表達式均不相同時,則執行default後的語句。
(10)c語言case語句擴展閱讀
任何switch語句都必須遵循以下規則:
1、只能針對基本數據類型中的整型類型使用switch,這些類型包括int、char等。對於其他類型,則必須使用if語句。
2、switch()的參數類型不能為實型 。
3、case標簽必須是常量表達式(constantExpression),如42或者"42"。
4、case標簽必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。