C语言之简单计算器(四则运算)

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(双精度)用来表示小数,双精度浮点数比单精度浮点数显示更多位数字

声明

本文章仅是作者的看法和总结。如有错误或不够完善的地方可以指出。

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值