C语言 分支 和 循环语句(中)
发布时间:2026/9/7 21:10:08 作者:尧图编辑部 阅读量:1,286
)
1. switch 语句AI提示词有了if语句为什么还需要switch呢 语法糖 指的是编程语言中那些让代码写起来更简洁更易读但并没有引入新功能的语法。switch语法示例如下 ↓ 重点switch 后的表达式必须是整型表达式case 后的值必须是整型常量表达式。√ 练习用 if语句 和 switch语句 分别去实现输入任意一个整数值计算除以3之后的余数。① if语句#includestdio.hintmain(){intnum0;scanf(%d,num);// 9if(num%30)// 9%30printf(余数是0\n);elseif(num%31)printf(余数是1\n);elseprintf(余数是2\n);return0;}② switch语句#includestdio.hintmain(){intnum0;scanf(%d,num);//8switch(num%3)//8%32{case0:printf(余数是0\n);break;case1:printf(余数是1\n);break;case2:printf(余数是2\n);break;}return0;}2. switch 语句 中的 break✨break 的作用是跳出 switch语句防止继续执行下一个case 。没有break时程序会从匹配的case开始一直往下执行知道遇到 break 或 switch 结束。√ 练习输入一个1~7的数字打印对应的是星期几请用switch语句实现例如输入1输出星期一1~7依此类推↓…#includestdio.hintmain(){intnum0;scanf(%d,num);//7switch(num){case1:printf(星期一\n);break;case2:printf(星期二\n);break;case3:printf(星期三\n);break;case4:printf(星期四\n);break;case5:printf(星期五\n);break;case6:printf(星期六\n);break;case7:printf(星期日\n);break;default:printf(你输入的整数区间不在1~7 输入错误\n);break;}return0;}如果需求发生变化① 输入1~5 输出的是 早八人早八魂。② 输入6~7输出的是 周末关掉闹钟睡到11点。③ 你输入的数字有问题哦请用switch语句来实现#includestdio.hintmain(){intnum0;scanf(%d,num);//3switch(num){case1:case2:case3:case4:case5:printf(早八人早八魂。\n);//输出这句话break;case6:case7:printf(周末关掉闹钟睡到11点。\n);break;defaultprintf(你输入的数字有问题哦\n);break;}return0;}3. switch 语句中的default✨default 的作用是当所有的 case 都不能被匹配时default执行的默认分支相当于“ 兜底 ” 处理。4. while循环√ 练习在屏幕上打印 1~10 的值用 while 语句实现。#includestdio.hintmain(){intnum0;while(num10){num;printf(%d ,num);}return0;} 提升难度题目输入一个正整数逆序打印这个整数的每一位。 我们读完题目后一定要学会分析问题需求不能一上来就咔咔乱写① 输入一个正整数② 逆序例如 num123123%103 ~ 需要打印的123/101212%102 ~12/1011%101 ~1/100 假设这个正整数为num num等于0就结束③ 打印每一位。 这里需要循环while✨ 分析完毕#includestdio.hintmain(){size_tnum0;//或者 unsigned int num 0;scanf(%zu,num);//123 或者 %uwhile(num!0){printf(%zu ,num%10);num/10;}return0;}⚠ size_t 与 unsigned int (unsigned 家族) 是无符号整数类型只能表示 0 的数专门用来存 “ 大小/长度 ” 不能表示负数。而 int、long、float 等能表示全体实数。⚠ 整型 与 短整型 与 长整型 的区别特征① 数值很小比如 月份、年份---- short② 日常用大部分情况-------- int③ 数值可能超大文件、大数据------ long long④ 确定不为负 并且 要更大的正数------- unsigned int 或者 size_t 【情况特殊】√ 练习输入一个正整数打印所有小于或者等于这个数的正偶数#includestdio.hintmain(){unsignedintnum0;scanf(%d,num);inti2;while(inum)//用if语句照样适用{printf(%d ,i);i2;}return0;}⛷️难度提升模拟游戏打Boss时攻击掉血的场景。#includestdio.hintmain(){intBoss_hp1000;//Boss的总血量intmei_ci_hp150;//每攻击一次掉血150//必须保证掉血值为0或者正数while(Boss_hp!0){intlast_hp(Boss_hpmei_ci_hp)?mei_ci_hp:Boss_hp;printf(Boss受到%d点攻击\n,last_hp);Boss_hp-last_hp;//1000-150 850...... 150-1500,结束printf(Boss掉血值为%d\n,Boss_hp);}printf(Boss被打倒了\n);}5. for循环for循环 是三种循环中使用最多的形式如下 ↓⚠ for循环的执行流程图 简单例子在屏幕上打印 1~10 的值#includestdio.hintmain(){inti0;for(i1;i10;i){printf(%d ,i);}return0;}6. for 循环的特殊写法for 循环中的三个表达式可以选择性省略判断部分被省略意味着判断部分恒成立可能会造成死循环死循环示例for(,,) { printf(haha\n); }正确示例int i 1; for(; i 10 ; i) { printf(%d,,i); }7. 多个变量控制for循环int a 0; int b 0; for(b 0,a 10; b a ; b, a--) { printf(b%d,a%d\n,b,a); /* a10,b0 ;b1,a9 a9,b1; b2,a8 b2,a8;b3,a7 b3,a7;b4,a6 b5,a5;*/ }初始化部分的b0,a10和调整部分的 b,a--是逗号表达式。⚠ 逗号表达式就是用逗号隔开的表达式。示例~~~C exp1,exp2,exp3...expn;逗号表达式从左向右依次执行整个表达式的结果是最后一个表达式的结果。例子int a 1; int b 2; int c (b 4, a b 10,b a 1); b4,a14,b14115// c15