簡述流程控制語句中的switch語句的結構是怎樣的
switch語句的語法如下(switch,case和default是關鍵字):
switch ( 表達式)
{
case 常量表達式1 :語句1;break;
case 常量表達式2 :語句2;break;
……
case 常量表達式n :語句n;break;
default:語句n+1;break;
}
說明:
break退出{ }
case后面只能跟一個值(加冒號:),而不能是一個表達式
switch(表達式) 后面沒有;(分號)
{}前后沒有;(分號)
switch語句規則
case標簽必須是常量表達式(constant Expression)
只能針對基本數據類型使用switch,這些類型包括int、char等。對于其他類型,則必須使用if語句。
case標簽必須是惟一性的表達式;也就是說,不允許兩個case具有相同的值。
不要問為什么,C就這規定!我們只需要了解規則,學會應用即可!
猜想原因:浮點型數據不是準確的數據,在機器中只能表示出一個近似值,如:0.1 在機器中存的是0.09999612。. 也可能是0.09999723。. 根據精度不同,數據來源不同,其值是個不確定的數據,因此,不能用CASE來定位
switch語句結構-在C語言中,實現分支結構有哪幾種語句?switch語句
if(。
) else(。
。) switch(變量名或變量表達式){ case 1:。
; case 2:。
。; case 3:。
; 。 。
。 case n:。
; default:。 。
。; } 上面的case后跟的數不一定是1~n,只要是確定的數就可以,與上面switch括號內的變量對應,相當于if(變量==數),如果是需要只輸出case后的一句需要在每一個case后加一個break。
2 if語句在用分支的時候,自由性大點,條件 可以寫一個范圍也可也是一個表達式 而switch則是一些應用比較中規中矩的類型。 然而在一些判斷中則可以互相替代之。
如成績(score)90分以上的輸出a 80分以上的輸出b 70發以上的輸出c 60分以上的輸出d 其它則為e 用if則為: if(score>90) printf("a"); else if(score>80) printf("b"); else if(score>70) printf("c"); else if(score>60) printf("d"); else printf("e"); int temp = (int)(score/10); switch(score){ case 9:printf("a");break; case 8:printf("b");break; case 7:printf("c");break; case 6:printf("d");break; default:printf("e"); }。
寫出switch語句的語法結構
swith([char||int]){
case states : do what?;[break;]
case states : do what?;[break;]
default :do what?;
}
例:
int i= 0;
switch(i){
case 1:*n(1);break;
case 2:*n(2);break;
default :*n("default");
}
C語言,選擇結構,switch語句
#include
void main()
{int x=1 , y=0, a=0,b=0;
switch(x) /*開關語句控制的這個x干嗎用的?我看不懂。*/
{case 1 :switch(y)
{case 0:a++;break; /*這個地方,a++后a得1?不是參與運算后才自增1嗎?不是還應該等于0嗎?*/
case 1:b++;break;
}
case 2:a++;b++;break;/*case 2 是怎么回事?誰的值得2了??*/
}
printf("a=%d,b=%d\n",a,b);
}
/*a=2,b=1*/
完全正確。
switch (x)
{
case 1: switch (y) //首先跳轉到這兒
{
case 0: a++; break; //接著跳轉到這
case 1: b++; break; //不執行
}
//跳出內switch(y) ,再執行外面switch(x)
case 2: a++; b++; break; //a=2,b=1
}
C語言中switch結構的使用
因為case后面不能接范圍,也就是說case后面是一個確實固定的常量.用下面的方法比較好,
#include<stdio.h>
int main()
{
int code;
printf("輸入成績\n");
scanf("%d",&code);
if(code<=100&&code>=90) printf("A級\n");
else if(code<=89&&code>=80) printf("B級\n");
else if(code<=79&&code>=70) printf("C級\n");
else if(code<=69&&code>60) printf("D級\n");
else (code<60) printf("E級\n");
return 0;
}
你可以先把范圍用字母或常量代替 ,再用switch語句
switch選擇結構
當然不是
例如如下代碼
#include <stdio.h>
main()
{
int a=1;
switch(a)
{
case 1:printf("1");
case 2:printf("2");
}
}
沒有break的話,輸出結果會是12
但是如果在每句case中加入break,那就只會輸出1
也就是說雖然不加break語法上沒有錯,但是就起不到選擇執行的作用了,只是第一次判斷,然后依次向下執行語句,懂了么
這么說吧,case只是一個“標簽”,只在switch第一次執行判斷時有用,比如以上代碼,a值為1,所以跳轉到標簽case 1:上,然后執行case 1:后的語句,注意,此時所有case就相當于都不存在了,語句就會一直執行下去,知直到有break出現
switch結構是怎么用的
case 寫的是那些情況的值
#include
void main()
{
int month;
int day;
coutcin>>month;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: day=31;
break;
case 4:
case 6:
case 9:
case 11: day=30;
break;
case 2: day=28;
break;
default:cout}
cout}
轉載請注明出處華閱文章網 » switch語句結構