一,switch语句
1,使用格式
2,注意事项
(1)当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
(2)不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续 后续的 case,直到遇到 break 为止。
(3)上面所有 case 都无法判断结果时,可用default代替其他所有情况。
(4)case后的表达式(的结果)必须是一个常量或字面量,不能是字符等。
(5)不管有几个case,switch后面都需要加大括号。
二,例题
接下来来看几个例题就能完全明白
1,"简单计算器"
题目:输入两个整数和一个运算符,输出结果。
输入样例:6+7 输出结果:13
代码如下:
#include<stdio.h>
int main()
{
int a,b;
char c;//运算符用字符数据类型定义
scanf("%d%c%d",&a,&c,&b);
switch(c)//判断的是运算符类型
{
case '+':printf("%d",a+b);break;
//单引号将字符括起来相当于用一个整数来表达(参考之前文章里的ASCII表讲解)
case '-':printf("%d",a-b);break;
case '*':printf("%d",a*b);break;
case '/':printf("%d",a/b);break;
default:printf("error");
}
return 0;
}
2.季节判断
设计程序,实现季节判断,若输入 1、2、3月,则输出Spring;若输入4、5、6月,则输出Summer;若输入7、8、9月,则输出Autumn;若输入10、11、12月,则输出Winter;若输入其他月份,输出Input Error。
要求:使用switch语句实现。
输入格式:
输入一个整数表示月份。
输出格式:
根据月份输出相应的季节。
代码如下:
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
switch(x)
{
case 1:
case 2:
case 3:printf("Spring"); break;//不需要每一个case后面都必须有表达式和break
case 4:
case 5:
case 6:printf("Summer");break;
case 7:
case 8:
case 9:printf("Autumn");break;
case 10:
case 11:
case 12:printf("Winter");break;
default:printf("Input Error");
}
return 0;
}
3,今天星期几-1(switch语句实现)
假如某月的1日是星期三,那么输入该月中的日期,要求输出对应的星期数。如输入3,则输出Friday。
输入格式:
输入该月中的日期(范围为1-31)
输出格式:
如输入的数据在1~31范围内,则输出对应的英文单词:星期几;否则输出:Error
输入样例1:
3
输出样例1:
在这里给出相应的输出。例如:
Friday
输入样例2:
32
输出样例2:
在这里给出相应的输出。例如:Error
这个题用switch就显得很复杂,因为switch语句的局限性是只能做到完全相等的匹配
这题我的做法应该比较麻烦,仅供参考,欢迎大家给出好的解决方案
我是利用周期性,if-else语句划分范围去将日期减去相应周期
代码如下:
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
if(x>7 && x<15)
x=x-7;
else if(x>14 && x<22)
x=x-14;
else if(x>21 && x<29)
x=x-21;
else if(x>28 && x<32)
x=x-28;
switch(x)
{
case 1:printf("Wednesday");break;
case 2:printf("Thursday");break;
case 3:printf("Friday");break;
case 4:printf("Saturdy");break;
case 5:printf("Sunday");break;
case 6:printf("Monday");break;
case 7:printf("Tuesday");break;
default:printf("Error");
}
return 0;
}
4.数据按需处理
输入一个实数和一个1-4的整数,根据该整数的值,输出实数对应的运算结果。数字1-4与计算功能的对应关系为:
1 输出相反数(保留两位小数)
2 输出平方数(保留两位小数)
3 输出实数的整数部分(取整数部分)
4 输出“EXIT”
要求:使用switch语句实现。
输入格式:
输入一个实数和一个整数。题目保证实数在float数据范围内,整数是1-4中的数。
输出格式:
输出对应的运算结果。文章来源:https://www.toymoban.com/news/detail-755676.html
代码如下:
#include <stdio.h>
int main()
{
int y,z;
float x;
scanf("%f %d",&x,&y);
if(y==3)
/*存储类型是浮点型而输入的整数是3时输出类型变为整数,所以提前判断并将数据储存到整数类型变量z中。*/
z=x;
switch(y)
{
case 1:printf("%.2f",-1*x);break;
case 2:printf("%.2f",x*x);break;
case 3:printf("%d",z);break;
case 4:printf("EXIT");break;
}
return 0;
}
以上就是我的学习记录,希望有所帮助,互相进步文章来源地址https://www.toymoban.com/news/detail-755676.html
到了这里,关于C语言 switch语句详细讲解 简单计算器及PTA例题季节判断,今天星期几-1(switch语句实现), 数据按需处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!