C语言-简单计算器(四则运算)
switch语句
switch 语句是分支选择语句,通过某一选定字符来进行分支引导,选择该语句分支下的某一 case 语句分支运行该分支下的程序;当完成分支下的程序后便跳出 switch 语句下的全部程序,通过 break 语句实现。
例如:
#include<stdio.h>
int main()
{
int x=2;//定义x数值为2
switch(x)//x表示为case后常量的值
{
case 1:printf("A");//当x=1执行了该分支结构的程序
break;//跳出swith函数下的程序
case 2:printf("B");//当x=2执行了该分支结构的程序
break;
}
return 0;
}
最后选择了 case 语句后常量值为2的分支下的程序进行了运行
输出结果为:B
所以 switch 语句括号内的变量赋值与 case 语句后的常量形成一对一的关系
break语句
break 语句代表着 switch 语句的中止,当遇到 break 语句时,跳出当前的 switch 语句,如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
#include<stdio.h>
int main()
{
int x=1;//定义x数值为2
switch(x)//x表示为case后常量的值
{
case 1:printf("A");//当x=1执行了该分支结构的程序
case 2:printf("B");//当x=2执行了该分支结构的程序
break;
}
return 0;
}
输出结果为:A
B
default语句
与 switch 语句关联的是 default 语句
default 语句是指当 switch 括号内的变量的赋值与 switch 语句下任意 case 语句后的常量都不相同,此时便运行 default 语句下的程序。
例如:
#include<stdio.h>
int main()
{
int x=3; //定义x数值为3
switch(x)
{
case 1:printf("A");//当x=1执行了该分支结构的程序
break;//跳出swith函数下的程序
case 2:printf("B");//当x=2执行了该分支结构的程序
break;
default:printf("输入错误!");
}
return 0;
}
因为不存在 case 语句后面常量为3的语句,所以执行分支语句 default 语句下的内容。
所以此处的运行结果便是:输入错误!
小结: default 语句可有可无,但该语句的存在可以明确输入者的错误,给予提示作用;也能使代码更加规范。
四则运算的区分便是 “+,-,*,/” 这四个符号
选用这四个符号作为判断依据
#include<stdio.h>
int main()
{
float a, c; //此处是用单精度浮点数的数据类型,以为int无法输出小数
char b; //字符型表示单个字符的数据类型,这里用来存储“+,-,*,/” 符号
scanf("%f%c%f",&a,&b,&c); //输入计算内容
switch(b)
{
case '+':printf("%f+%f=%f\n",a,c,a+c);
break;
case '-':printf("%f-%f=%f\n",a,c,a-c);
break;
case '*':printf("%f*%f=%f\n",a,c,a*c);
break;
case '/':printf("%f/%f=%f\n",a,c,a/c);
break;
default:printf("输入错误!\n");
}
return 0;
}
补充
在数学中,除数为0是没有意义的,而被除数为0的结果也没有定义。因此,在计算器中出现除数为0或者被除数为0时,应该显示错误信息。
因此我们可以加入条件语句 if 和 else if 进行筛选,例如:
#include<stdio.h>
int main()
{
float a, c; //此处是用单精度浮点数的数据类型,以为int无法输出小数
char b; //字符型表示单个字符的数据类型,这里用来存储“+,-,*,/” 符号
scanf("%f%c%f",&a,&b,&c); //输入计算内容
if(a == 0){
printf("错误:除数不能为零!");
}else if(c == 0){
printf("错误:被除数不能为零!");
}else {
switch(b)
{
case '+':printf("%f+%f=%f\n",a,c,a+c);
break;
case '-':printf("%f-%f=%f\n",a,c,a-c);
break;
case '*':printf("%f*%f=%f\n",a,c,a*c);
break;
case '/':printf("%f/%f=%f\n",a,c,a/c);
break;
default:printf("输入错误!\n");
}
}
return 0;
}
扩展
基本数据类型 | 表达式 | 含义 |
---|---|---|
整型 | int | 用于表示整数值,即不带小数点的数值 |
字符型 | char | 用来表示单个字符,通常用来存储字母、符号或其他特殊字符 |
浮点型(小数) | float(单精度)/double(双精度) | 用来表示小数,双精度浮点数比单精度浮点数显示更多位数字 |
声明
本文章仅是作者的看法和总结。如有错误或不够完善的地方可以指出。