怎么写C语言的switch程序

作者&投稿:胥季 (若有异议请与网页底部的电邮联系)
c语言用switch编写一个简单的四则运算程序~

#include
int main()
{double a,b,c;
char op;
scanf("%lf%c%lf",&a,&op,&b);
switch(op)
{case '+': c=a+b; break;
case '-': c=a-b; break;
case '*': c=a*b; break;
case '/': if(b) c=a/b;
else {printf("除数不能为0!
"); return 0;}
default:{printf("未知的运算符!
"); return 0;}
}
printf("%g%c%g=%g
",a,op,b,c);
return 0;
}

switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断。下例为用switch语句编写的四则运算:

#include
void main()
{
double N1,N2;
char Operation;
printf("输入运算的两个数");
scanf("%lf%lf",&N1,N2);
printf("请输入运算符(+,-,*,/):");
switch(Operation)
{
case '+':printf("%lf%c%lf=%lf",N1,N2,Operation,N1+N2);
break;
case '-':printf("%lf%c%lf=%lf",N1,N2,Operation,N1-N2);
break;
case '*':printf("%lf%c%lf=%lf",N1,N2,Operation,N1*N2);
break;
case '/':printf("%lf%c%lf=%lf",N1,N2,Operation,N1/N2);
break;
}
}

switch ,开关控制语句,一般形式:

switch (表达式){
    case 常量表达式1:  语句1;
    case 常量表达式2:  语句2;
    …
    case 常量表达式n:  语句n;
    default:  语句n+1;
}

其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

#include <stdio.h>
int main(void){
   int a;
   printf("input integer number:      ");
   scanf("%d",&a);
   switch (a){
       case 1:printf("Monday
");
       case 2:printf("Tuesday
");
       case 3:printf("Wednesday
");
       case 4:printf("Thursday
");
       case 5:printf("Friday
");
       case 6:printf("Saturday
");
       case 7:printf("Sunday
");
       default:printf("error
");
   }
   return 0;
}

本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。

为了避免上述情况,C语言还提供了一种break语句,可用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。

#include <stdio.h>
int main(void){
   int a;
   printf("input integer number:    ");
   scanf("%d",&a);
   switch (a){
       case 1:printf("Monday
");  break;
       case 2:printf("Tuesday
");   break;
       case 3:printf("Wednesday
");  break;
       case 4:printf("Thursday
");  break;
       case 5:printf("Friday
");  break;
       case 6:printf("Saturday
");  break;
       case 7:printf("Sunday
");  break;
       default:printf("error
");
   }
   return 0;
}

在使用switch语句时还应注意以下几点:

  1. 在case后的各常量表达式的值不能相同,否则会出现错误。

  2. 在case后,允许有多个语句,可以不用{}括起来。

  3. 各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

  4. default子句可以省略不用。



在C语言中如何用switch语句进行简单的四则运算,除法要能处理零的...
答:请看下面程序:include<iostream> using namespace std;void main( ){ float x,y,r;char op;cout <<"请输入一个算式(例如:12+5):";cin >>x >>op >>y;switch(op){ case '+':r=x+y; break;case '-':r=x-y; break;case '*':r=x*y; break;case '/':if(y==0){ cout...

c语言switch的用法 详细些 谢谢
答:只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。C语言switch应用例子:例...

c语言switch
答:include<stdio.h> // 包含一个C语言标准输入输入头文件stdio void main () // 入口函数 { int i; // 定义一个整形变量i for(i=1;i<=5;i++) // 初始化为1,不断累加到5 switch(i%5) //求模,i为1时,为1,2时为2,3时为3,4时为4,5时为0 {case 0:printf...

c语言中switch怎么用?
答:C语言中switch是条多分支选择语句。通常情况下格式如下:switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1;} 其中default不一定放在最后 完整格式:switch(表达式){ case 常量表达式1: 语句1; cas...

C语言switch语句编个小程序
答:include <stdio.h> void main(){ int age;printf("please input the child age:");scanf("%d",&age);switch(age){ case 2:case 3: printf("%d,enter the Lower class.\n",age); break;case 4: printf("%d,enter the Middle class.\n",age); break;case 5:case 6: printf("%d,...

用c语言的switch编这个小程序,怎么编?
答:switch ( score / 10 ){ case 0: case 1: case 2: case 3: case 4: case 5:printf( "E\n" );break;case 6:printf( "D\n" );break;case 7:printf( "C\n" );break;case 8:printf( "B\n" );break;case 9: case 10:printf( "A\n" );break;} printf( "Input Score ...

c语言中用 switch 怎么写然后输入一个分数根据分数段输出 ABCDE。_百度...
答:include <stdio.h> main(){ int v;int f;printf("input fenshu between 0 and 100 :");scanf("%d",&f);v = f / 10;printf("the Mark is: ");switch(v){ case 10: case 9: printf("A\n");break;case 8: printf("B\n");break;case 7: printf("C\n");break;case 6: ...

编写C语言程序 用switch结构或if语句 输入成绩 输出等级
答:include \x0d\x0aint main() {\x0d\x0a int s, d;\x0d\x0a printf("输入成绩(百分制): ");\x0d\x0a scanf("%d", &s);\x0d\x0a d = s / 10;\x0d\x0a switch (d) {\x0d\x0a case 10:\x0d\x0a printf("满分。\n");\x0d\x...

求C语言!用switch编写一个计算分段函数的程序!
答:main(){ int a,b,c;//a是输入测试值,b是分段值,c是条件标志 printf("input the value and percentils:\n");scanf("%d d",&a,&b);//判断a值 if(a>=b)c=1;else c=0;switch(c){ case 1;//a的函数计算 ;break;default://a的函数计算 } } ...

c语言用switch编写一个简单的四则运算程序
答:代码如下:include <stdio.h> int main(){ float fFloat1=.0,fFloat2=.0;char cOP=NULL;printf("请输入要进行四则运算表达式:\n");scanf("%f%c%f",&fFloat1,&cOP,&fFloat2);switch(cOP){ case '+':printf("%f+%f=%f\n",fFloat1,fFloat2,fFloat1+fFloat2);break;case '-':p...