对于switch语句,Sleep(),system()等的回顾与小结

tips

1.老子把你天灵盖给掀了,if与else if 这两个都还搞不清楚吗?到目前为止还要犯低级错误。else if如果上面的if执行了,那么else if 就不执行了。else if的执行与否与上面的if语句息息相关

2. 二分查找针对的对象是一个有顺序的数组

3. Sleep()函数
    1.库函数Sleep()是实现睡眠的,也就是说程序执行到那的时候会停顿一下子,单位是毫秒。引用这个函数的时候也需要引用头文件,为windows.h。

    2.如果没有加Sleep ()函数,我的结果是直接一股脑打印出来。等我加上Sleep()函数之后,每一行都是隔一秒然后打印出来,之间有时间差。

4. system()函数的头文件为stdlib.h

5. 一个函数只能返回一个结果

6. gets()函数读取失败也会返回EOF。

7. 比如说原先已经初始化好了一个字符数组,对这个数组连续两次进行gets输入,第一次之间与第二次之间不是覆盖关系,而是当你进行第二次gets输入的时候,在这之前会把数组再次清空

8. 打印字符数组可以用%s一次性进行打印,打印整形数组只能一个一个依次遍历着打印

switch语句

1. switch语句也是一种分支语句,常常用于多分支的情况,在多分支情况下,if else语句显得太繁琐了。

2. switch后面括号里的必须是整形表达式或者枚举类型,整形,整形,整形。

3. case后面必须是常量整形表达式,常量整形,常量整形,常量整形。

4. case与default后面都是冒号。

5. case(表达式),如果switch后面的表达式与case的标签值匹配,这个case就是入口

6. 一旦进入之后,在没有碰到break(停止信号)之前,下面的语句流会一直执行下去。(不是所有的case都要加break)。break跳出的只是当前的switch语句(switch语句也可以嵌套)。

7. 如果表达式的值与所有case的标签的值都不匹配,结果就是所有的语句都被跳过,程序不会停止也不会报错,如果不想忽略不匹配所有标签的表达式的值,可以在语句列表中加一条default字句,当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。

8. switch语句里面只要逻辑正确,里面的顺序不做要求

9. 在switch语句当中,如果switch后面括号内容与case的标签值匹配,那么这个case就是switch语句流的入口,在没有碰到break之前,是不会停下来的。switch的每个case之后如果没有加break语句,当前case执行结束后,会继续执行紧跟case中的语句(如default语句)


 

10. switch语句一旦进去之后,如果没有碰到break,那么就会在这之后的一条一条语句,每一条语句都会执行下去。这时候不管你匹配不匹配了。让我唯一停下来的就是break。

11. switch主要是用来代替那种多分支的if语句,并且switch内部也可以进行嵌套

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是将原代码中的switch语句改写成if else if语句的优化版本: ``` #include <stdio.h> #include <Windows.h> double count; void save(); void draw(); int main() { int sel; while (1) { system("cls"); printf("\t|-存钱取钱程序菜单-|\n"); printf("\t|\t1:存钱\t\t\t|\n"); printf("\t|\t2:取钱\t\t\t|\n"); printf("\t|t0:退出\t\t\t|\n"); printf("\t 请输入您的选择0~2:"); scanf_s("%d", &sel); if (sel == 1) { save(); } else if (sel == 2) { draw(); } else if (sel == 0) { printf("谢谢使用,再见。\n"); Sleep(1500); return 0; } else { printf("输入错误!请重新输入:n"); } getch(); } return 0; } void draw() { int errn = 0; float n; printf("当前账户余额为:%0.2f元。 \n", count); printf("请输入您要取款数额:"); while (1) { scanf("%f", &n); if (n >= count || (int)n % 100 != 0) { printf("输入的金额有误!请重新输入:"); errn++; if (errn >= 3) { printf("输入错误次数过多!\n"); Sleep(1000); return; } } else { count -= n; printf("取钱成功!最新余额为: %0.2f元。\n", count); return; } } } void save() { float n; printf("当前账户余额为:%0.2f元。 \n", count); printf("请输入您要存款数额:"); scanf("%f", &n); count += n; printf("存钱成功!最新余额为: %0.2f元。\n", count); } ``` 这个版本将原来的switch语句改写成了if else if语句,这样可以使代码更加简洁,易读性更高。如果用户输入的是1,则调用存钱函数save();如果输入的是2,则调用取钱函数draw();如果输入的是0,则退出程序;如果输入的是其他数字,则提示用户重新输入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

絕知此事要躬行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值