-
1 # tslem1055
-
2 # 使用者4044295222555
C語言程式語句switch:
switch用在程式設計中,如C語言中它經常跟case一起使用,是一個判斷選擇程式碼。其功能就是控制業務流程流轉的。
switch語句的語法如下(switch,case和default是關鍵字):
switch ( controllingExpression )
{
case constantExpression1 :
case constantExpression2 :
case constantExpression3 :
statements; //當滿足constantExpression1、constantExpression2、constantExpression3任何一個都執行statements
break;
case constantExpression :
statements ;
break;
...
default :
statements ;
break;
}
遵守switch語句規則
switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則:
只能針對基本資料型別使用switch,這些型別包括int、char等。對於其他型別,則必須使用if語句。
case標籤必須是常量表達式(constantExpression),如42或者"42"。如果需要在執行時計算case標籤的值,必須使用if語句。
case標籤必須是惟一性的表示式;也就是說,不允許兩個case具有相同的值。
C語言switch應用例子:
例一:
#include
int main()
{
double score;
printf("請輸入分數:\n");
scanf("%lf",&score);
switch((int)(score/10)) //如果寫成witch((int)score/10)會出現嚴重錯誤
{
case 10:
case 9:printf("A(最好)\n");break;
case 8:printf("B(優秀)\n");break;
case 7:printf("C(良好)\n");break;
case 6:printf("D(及格)\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("E(不及格)\n");break;
default:printf("Error!\n");
}
}
例二:
#include
int main()
{
char rank;
printf("請輸入分數等級:(A、B、C、D、E)\n");
scanf("%c",&rank);
switch(rank)//switch((int)score/10)出現嚴重錯誤,switch(((int)score)/10)出現嚴重錯誤,
{
case "A":printf("A(90~100)\n");break;
case "B":printf("B(80~89)\n");break;
case "C":printf("C(70~79)\n");break;
case "D":printf("D(60~69)\n");break;
case "E":printf("E(0~59)\n");break;
default:printf("error!\n");break;
}
}
例三:
輸入年月日,判斷這一天是這一年的第幾天。
#include
int main()
{
int year,month,date,leap,days=0;
scanf("%4d%2d%2d",&year,&month,&date);
leap=(year%4==0&&year%100!=0||year%400==0);
switch(month)
{
case 12:days+=30;
case 11:days+=31;
case 10:days+=30;
case 9:days+=31;
case 8:days+=31;
case 7:days+=30;
case 6:days+=31;
case 5:days+=30;
case 4:days+=31;
case 3:days+=28+leap;
case 2:days+=31;
case 1:days+=date;break;
}
printf("%4d年%2d月%2d日是這一年的第%d天。\n",year,month,date,days);
}
回覆列表
C語言程式語句switch: switch用在程式設計中,如C語言中它經常跟case一起使用,是一個判斷選擇程式碼。其功能就是控制業務流程流轉的。 switch語句的語法如下(switch,case和default是關鍵字): switch(controllingExpression) { caseconstantExpression1: caseconstantExpression2: caseconstantExpression3: statements;//當滿足constantExpression1、constantExpression2、constantExpression3任何一個都執行statements break; caseconstantExpression: statements; break; ... default: statements; break; } 遵守switch語句規則 switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則: 只能針對基本資料型別使用switch,這些型別包括int、char等。對於其他型別,則必須使用if語句。 case標籤必須是常量表達式(constantExpression),如42或者"42"。如果需要在執行時計算case標籤的值,必須使用if語句。 case標籤必須是惟一性的表示式;也就是說,不允許兩個case具有相同的值。 C語言switch應用例子: 例一: #include<stdio.h> intmain() { doublescore; printf("請輸入分數:\n"); scanf("%lf",&score); switch((int)(score/10))//如果寫成witch((int)score/10)會出現嚴重錯誤 { case10: case9:printf("A(最好)\n");break; case8:printf("B(優秀)\n");break; case7:printf("C(良好)\n");break; case6:printf("D(及格)\n");break; case5: case4: case3: case2: case1: case0:printf("E(不及格)\n");break; default:printf("Error!\n"); } } 例二: #include<stdio.h> intmain() { charrank; printf("請輸入分數等級:(A、B、C、D、E)\n"); scanf("%c",&rank); switch(rank)//switch((int)score/10)出現嚴重錯誤,switch(((int)score)/10)出現嚴重錯誤, { case"A":printf("A(90~100)\n");break; case"B":printf("B(80~89)\n");break; case"C":printf("C(70~79)\n");break; case"D":printf("D(60~69)\n");break; case"E":printf("E(0~59)\n");break; default:printf("error!\n");break; } } 例三: 輸入年月日,判斷這一天是這一年的第幾天。 #include<stdio.h> intmain() { intyear,month,date,leap,days=0; scanf("%4d%2d%2d",&year,&month,&date); leap=(year%4==0&&year%100!=0||year%400==0); switch(month) { case12:days+=30; case11:days+=31; case10:days+=30; case9:days+=31; case8:days+=31; case7:days+=30; case6:days+=31; case5:days+=30; case4:days+=31; case3:days+=28+leap; case2:days+=31; case1:days+=date;break; } printf("%4d年%2d月%2d日是這一年的第%d天。\n",year,month,date,days); }