Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143120
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2268
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-05 09:50
文章分类

全部博文(121)

文章存档

2015年(6)

2014年(94)

2013年(21)

我的朋友

分类: C/C++

2014-05-13 15:59:28

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) |
0

上一篇:php中::是什么意思?

下一篇:php

给主人留下些什么吧!~~