C语言————分支与循环
C语言的语句分类有空语句 表达式语句复合语句控制语句。控制语句顺序结构选择结构循环结构一.选择结构if语句switch语句 循环结构for语句while语句1.if语句if(表达式)1if语句中的表达式为真的话就执行if语句若表示式为假的话不执行。2if语句后面默认式一条语句超过一条语句要加个大括号。30为假非0为真(4) “”为赋值“”为判断相等5else悬空问题如果有多个if 和 else 那么else总是跟最接近的if匹配。#inlclude stdio.h int main() { int i1; if(i1) pritnf(%d,i); return 0; }以上代码结果是12.条件操作符表达式1 表达式2 表达式31表达式1为真 则执行表达式2。若表达式1为假 则执行表达式3。#inlcude stdio.h int main() { int a0; int b0; if(a5) b(a5?3:-3); b3; else b-3; }以上代码中的左右代码意思以及结果式一样的。3.if语句练习1输入一个整数如果是正数在判断是奇数还是偶数并输出如果不是正数则输出非正数。#include stdio.h int main() { int num0; scanf(%d,num); if(num0) { if(num % 2 1) printf(奇数\n); else printf(偶数\n); } else printf(非正数\n); return 0; }上面代码输入2 会输出偶数输入3会输出;奇数3.switch语句switch(表达式){case 值case 值}1switch语句是一种特殊形式的if-else结构用于判断条件有多个结果的情况。2switch后的表达式必须是整型表达式3case后的值必须是整型常量表达式。4case决定的是入口break决定的是出口break用于跳出switch语句。5所以case不匹配的时候看default语句写的啥。4.switch语句练习1计算除3之后的余数#define _CRT_SECURE_NO_WARNINGS #include stdio.h int main() { int num 0; scanf(%d, num); switch (num % 3) { case 0: printf(余数是0\n); case 1: printf(余数是1\n); case 2: printf(余数是2\n); break; } return 0; }上面代码输入5 输出2 输入7 输出1。5.while循环while(表达式)1while里面的表达式是用于循环的判断。2表达式结果 非0-视为真执行大括号循环题表达式结果为 0-视为假直接跳出while循环。3break会立刻终止 当前while循环直接跳到到循环后面代码。#include stdio.h int main() { int i 0; while (i 10) { if (i 5) break; i; } return 0; }这个代码执行到i5直接跳出循环。4continue 只会结束本次循环直接回到while条件判断不执行continue后面剩余代码。#include stdio.h int main() { int i 0; while (i 5) { i; //自增一定要放在continue后面不然变量永远不变。 if (i 2) continue; printf(%d, i); } return 0; }(5)while循环是先判断后执行。do-while循环是先执行后判断至少执行一次。6.do-while 循环do{循环体代码}while(条件表达式); //末尾分号不能丢一执行流程1.先执行一次do大括号里面的循环体2.再判断while条件3.条件为真则回到do继续循环若条件为假则推出循环。核心特点至少执行1次循环体不管条件一开始是真还是假。二与while循环的区别1while(条件)先判断后执行。条件为假一次都不跑。2do-while条件先执行后判断。最少运行1次。int a 10; while(a 5) { printf(while执行\n); } // 结果什么都不打印条件一开始就假 int b 10; do { printf(do while执行\n); }while(b 5); // 结果打印1次先跑代码再判断发现不成立退出7.go-to 语句标签名: //代码 goto 标签名;- 标签标识符 冒号 : 放在函数内部任意位置。- goto 标签; 程序直接跳转到标签所在那一行执行。⚠️重点goto只能在同一个函数内部跳转不能跨函数跳转。简单实列#include stdio.h int main() { int i 1; loop: //这是标签 printf(%d , i); i; if(i 5) goto loop; return 0; } //输出1 2 3 4 52、goto能干什么1. 实现循环可以替代 while / do‑while2. 多层循环快速跳出goto最正统使用场景break 只能跳出当前一层循环多层嵌套break要写很多标志变量goto一步直接跳出全部。多层循环示例for(int i0;i10;i) { for(int j0;j10;j) { if(i 3 j 3) { goto end_loop; //直接跳出两层循环 } } } end_loop: ; //标签位置 printf(全部循环结束\n);3. 错误处理一次性跳转到函数末尾做资源释放C语言内核大量这么写4.go-to 不能做什么坑点1.不能跨函数跳转标签和goto 必须在同一函数。void fun1(){ aa: ; } int main(){ goto aa; //编译报错跨函数不行 }2不能跳过定义变量定义。goto here; int a 10; //跳过变量初始化危险 here:3关于goto 语句- 可以往前跳也可以往后跳- 往前跳 → 形成循环- 往后跳 → 跳过一部分代码-不建议使用-使用的话在一个函数内部使用。适用于多层循环的场景。-其实不适用goto语句常常也能完成效果。

相关新闻

最新新闻

日新闻

周新闻

月新闻