32个回答
展开全部
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");
}
}
}
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");
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的。
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。
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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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对应的大括号,才会停止
case 1:
printf("1");
case 2:
printf("2");
break;
case 3:
printf("3");
break;
如果这样写
1 的时候 输出 12
2 的时候 输出 2
3 的时候 输出 3
case会一直向下执行,直到碰到break语句,或者switch对应的大括号,才会停止
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
希望对你有帮助。
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);
}
希望对你有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码错了,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;
}
}
#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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询