Hello,宝子们!今天我们来模拟实现一下我们生活中的应用最频繁的工具:计算器,实现计算器有三种方式。

(图片来源网络,侵删)
废话不多说,直接上代码,计算器的一般实现:
#include int add(int a, int b)//加法函数 { return a + b; } int sub(int a, int b)//减法函数 { return a - b; } int mul(int a, int b)//乘法函数 { return a * b; } int div(int a, int b)//除法函数 { return a / b; } int main() { int x, y; int input = 1; int ret = 0; do { //首先一上来就打印菜单,下面进行选择,所以要用到do while 循环结构 printf("*************************\n"); printf(" 1:Add 2:Sub \n"); printf(" 3:Mul 4:Div \n"); printf(" 0:Exit \n"); printf("*************************\n"); printf("请选择:"); scanf("%d", &input); switch (input) { case 1: printf("输⼊操作数:"); scanf("%d %d", &x, &y); ret = add(x, y); printf("ret = %d\n", ret); break; case 2: printf("输⼊操作数:"); scanf("%d %d", &x, &y); ret = sub(x, y); printf("ret = %d\n", ret); break; case 3: printf("输⼊操作数:"); scanf("%d %d", &x, &y); ret = mul(x, y); printf("ret = %d\n", ret); break; case 4: printf("输⼊操作数:"); scanf("%d %d", &x, &y); ret = div(x, y); printf("ret = %d\n", ret); break; case 0: printf("退出程序\n"); break; default: printf("选择错误\n"); break; } } while (input); return 0; }
像这样的代码看完之后有什么问题?虽然也不影响最后计算的结果,但是这样的代码是不是太冗余了,case里面重复的代码太多了,这还只有加减乘除四个选项,要是再多扩张几个选项呢,比如:&&,||,>>,