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);
}
期望对你有帮助。
参考资料: (VS.80).aspx
[发问者采用] | 谈论 | 18 0
2009-10-05 12:52liuy0501 | 五级
switch句子的语法如下(switch,case和default是关键词):
switch ( controllingExpression )
{
case constantExpression :
statements
break;
case constantExpression :
statements
break;
...
default :
statements
break;
}
controllingExpression(操控表达式)只求值一次。然后,从其constantExpression值等于controllingExpression值的case开端,它下方的一切句子都会一向运转,直到遇到一个break停止。随后,switch句子将完毕,程序从switch完毕大括号之后的第一个句子持续履行,并疏忽其他case。
假设任何一个constantExpression值都不等于controllingExpression的值,就运转可选标签default之下的句子。
留意 假设controllingExpression的值和任何一个case标签都不匹配,一起没有发现一个default标签,程序会越过整个switch句子,从它的完毕大括号之后的第一个句子持续履行。
例如,前面的嵌套if句子能够改写为以下switch句子:
switch (day)
{
case 0 :
dayName = "Sunday";
break;
case 1 :
dayName = "Monday";
break;
case 2 :
dayName = "Tuesday";
break;
...
default :
dayName = "Unknown";
break;
}
恪守switch句子规矩
switch句子十分有用,但在运用时有必要慎重。所写的任何switch句子都有必要遵从以下规矩:
只能关于根本数据类型运用switch,这些类型包含int和string等待。关于其他类型,则有必要运用if句子。
case标签有必要是常量表达式(constantExpression),如42或许"42"。假设需求在运转时核算case标签的值,有必要运用if句子。
case标签有必要是专一性的表达式;也即是说,不答应两个case具有一样的值。
能够连续写下一系列case标签(中心不能间插额定的句子),然后指定自个期望在多种状况下都运转一样的句子。假设像这样写,那么最终一个case标签之后的代码将适用于一切case。但是,假设一个标签关联了一个或多个句子,又没有运用break来跳出,那么履行就不能贯穿到后续的标签,并且编译器会陈述一个过错。例如:
switch (trumps)
{
case Hearts :
case Diamonds : // 答应贯穿 — 标签之间无额定代码
color = "Red"; // 关于Hearts和Diamonds这两种状况都会履行的代码
break;
case Clubs :
color = "Black";
case Spades : // 犯错 — 标签之间有额定代码,并且没有运用break来跳出
color = "Black";
break;
}
摘选自:
摘选自:
阅读(1608) | 评论(0) | 转发(0) |