c语言 switch的用法

详细点最好举几个例子加以说明... 详细点最好举几个例子加以说明 展开
 我来答
畅景彰b5
推荐于2018-02-27 · TA获得超过4374个赞
知道小有建树答主
回答量:839
采纳率:0%
帮助的人:1275万
展开全部
switch的格式是
switch(n){
case 1:
{...
}break;
case 2:
{...
}break;
.
case n:
{...
}break;
default:
{...
}break;
}

}
我举了一个例子,就是你输入两个数字,然后输入运算符号,显示计算结果
#include<stdio.h>
void main()
{
int x,y;
char c;
printf("x=");
scanf("%d",&x);flushall();
printf("y=");
scanf("%d",&y);flushall();
printf("calculate sort:");
scanf("%c",&c);flushall();
switch(c)
{
case '+':
{
printf("result is %d\n",x+y);
}break;
case '-':
{
printf("result is %d\n",x-y);
}break;
case '*':
{
printf("result is %d\n",x*y);
}break;
case '/':
{
printf("result is %g\n",(float)x/(float)y);
}break;
default:
{
printf("input error");
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2019-01-09 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5696万
展开全部
是的。
case 几 冒号,表示当开关值x 等于 几 的 入口。x=1, 从 case 1 进入。x=2, 从 case 2 进入....
从 case 1 进入后,按语句顺序执行: (1)执行 a--; (2)执行 break; 因为遇到 break 语句,所以 终止 并 跳出 开关 语句。不再执行 case 2和case 3。
如果 没有 break,x=1, 语句顺序是:
case 1: a--;
case 2: b++; break;
case 3: a++;b++;
那么 从 case 1 进入后,按语句顺序执行: (1)执行 a--; (2) 进入case 2: (3) 执行b++; (4) 执行 break; 遇到 break 语句,所以 终止 并 跳出 开关 语句。不再执行case 3。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝兔小童鞋
2016-01-26 · TA获得超过817个赞
知道答主
回答量:95
采纳率:100%
帮助的人:10.9万
展开全部
switch主要是选择功能,判断switch后面的条件,如果符合case里面哪一个,就进行相应操作,例如如下代码。
case 1:
printf("1");
case 2:
printf("2");
break;
case 3:
printf("3");
break;

如果这样写

1 的时候 输出 12
2 的时候 输出 2
3 的时候 输出 3

case会一直向下执行,直到碰到break语句,或者switch对应的大括号,才会停止
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappbxPVzdL4liSay
2011-09-04 · 超过12用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:25.4万
展开全部
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<stdio.h>
  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<stdio.h>
  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<stdio.h>
  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);
  }
希望对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
965225646
2009-04-09 · TA获得超过289个赞
知道答主
回答量:145
采纳率:0%
帮助的人:0
展开全部
你的代码错了,switch中case后跟的条件必须是一个确定的数,不是范围,而且c的类型也声明错了,可以这样改:
#include "stdio.h"
void main()
{
int c,a;
printf("请输入成绩:\n");
scanf("%c",&c);
if(c>=90) a=1;
else if(c>=80) a=2;
switch(a)
{
case 1:printf("成绩的等级为:A.\n");
break;
case 2:printf("成绩的等级为:B.\n");
break;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式