资讯动态

C语言 分支循环语句基础讲解

发布时间:2026/8/6 10:07:08 来源:尧图企业网站定制
目录分支语句一、if 语句1.单分支结构2.双分支结构3.多分支结构嵌套if语句4.执行条件二、switch 语句循环语句一、for 循环二、while 循环三、do - while 循环四、注意事项分支语句当程序运行至此会选择走满足条件的分支语句而不是遍历每行代码。一、if 语句1.单分支结构intmain(){inta;scanf(%d,a);if(a1)printf(1);//if(a 1)//{// printf(1);//}//if(a 1)//{// printf(1);// printf(a1);//}return0;}此时如果输入的数字为 1则输出结果为 1。如果输入的数字不为 1则不会执行 if分支printf语句将不被执行没有结果被输出。只有 a 满足条件时才会执行相应的分支。if分支有可能不被执行注意在C语言中 if语句的执行条件写在括号中满足条件则执行语句。if语句默认只运行一条代码如果要运行多条代码需要添加{}大括号将所有需要运行的代码包括在内。如果只有一行语句可不加 {}大括号若有多行则需添加否则无法达成想要的运行效果。2.双分支结构intmain(){inta;scanf(%d,a);if(a1)printf(1);elseprintf(0);//else// printf(0);//else//{// printf(0);// printf(a0);//}return0;}此时,如果输入的数字为 1则执行 if分支输出结果为 1。如果输入的数字不为 1则不会执行 if分支而执行else分支输出结果为 0。双分支结构 if分支或 else分支必然被执行其中一条不可能两条都不执行 或两条都执行。注意 除了 if分支的执行条件外 都是else分支的执行条件所以 else 后面不用加括号。else分支语句同上如果只有一行语句可不加 {}大括号若有多行则需添加否则无法达成想要的运行效果。特殊条件表达式 语句1(语句2)(语句3)如果满足语句1执行语句2不满足执行语句3。3.多分支结构嵌套if语句intmain(){inta;scanf(%d,a);if(a1)printf(1);elseif(a0)printf(0);elseprintf(9);//else//{// if (a 0)// printf(0);// else// printf(9);//}return0;}如果输入的数字为 1执行 if分支输出结果为 1。如果输入的数字为 0执行 else if分支输出结果为 0。如果输入的数字不是 1 也不是 0执行 else分支输出结果为9。如上述代码中注释所示else if 是 else内嵌 if else语句 去掉大括号得到的结果。多分支结构 只要出现 else必然被执行其中一条。如果只写 if 和 else if 有可能都不执行或者只执行其中一条注意 除了 elseif 和 else if都需要写明执行条件。else if分支语句同上如果只有一行语句可不加 {}大括号若有多行则需添加否则无法达成想要的运行效果。另外 else 在没有大括号进行区分的情况下只与最近的 if配对而非看格式上与哪个 if对齐。if() //... if() //... else //...此格式代码运行逻辑与下图一致。if() { //... if() //... else //... }上述代码最后一行 else不会与第一个 if配对if() { //... if() //... } else //...;而这种不同此为嵌套if语句可以在 if或者 else语句中嵌套多个if语句 以实现预期的效果。此时最后一行 else与第一行 if配对。在不满足第一行 if执行条件的情况下 执行最后一行else分支语句满足则进入内嵌if语句中再次进行判断。if() { if() //... else if() //... else //... } else //...;4.执行条件各分支 括号内的执行条件为表达式布尔型 bool_ : true false ,对应 1 0 真 假。如果表达式为 true / 1 则运行为 false / 0 则不运行继续判断 。注() () 其两边表达式必须同时满足才为真“并且”。() || () : 其两边表达式至少满足一个即为真“相容或”。可能出现短路即一旦左边被满足另一边表达式不再计算。与数学中 “ ” 含义相同相等的意思。赋值符注意与 “ ” 区分容易出现bug.二、switch 语句intmain(){inta;scanf(%d,a);switch(a){case0:printf(0);break;case1:printf(1);break;default:printf(9);break;}return0;}switch 的执行条件只能是整型或字符表达式。case 后面只能跟 整型或字符常量表达式。根据 a 的值判断满足 case后面哪个表达式然后执行后续所有语句 直到结束switch整个语句或遇到break。如果case后的表达式都不满足则执行default语句后续的所有语句 直到结束switch整个语句或遇到break。注建议将 default放置在最后。break跳出整个switch语句。输入输出001139以下代码为举例intmain(){inta;scanf(%d,a);switch(a){case0:case1:printf(8);break;default:printf(9);}return0;}最后一行的分支语句可不加break因为后面没有分支不影响运行结果。输入输出081839注意如果一个分支要执行多行语句同样需要加上{}大括号。循环语句将机械重复的步骤 使用循环语句来简化代码然后达到预期的效果。可以在循环语句中嵌套循环语句或分支语句。一、for 循环intmain(){inti;for(i0;i5;i){printf(%d ,i);// 输出: 0 1 2 3 4}return0;}for (参数初始化表达式; 条件判断表达式; 参数调整表达式)大括号内为循环体若只有一条语句可不加{}。初始化表达式只在开始循环时执行一次每执行完一次循环体则执行一次 参数调整语句然后判断是否达到条件表达式为 1 则继续循环直到表达式为 0停止。可以发现条件判断表达式比循环体多执行一次。以下为一些变种均正确。for ( int i 0; i 5; i) { printf(%d , i); }int i 0; for ( ; i 5;) { printf(%d , i); i; }注意语句是变化了位置而非完全不写。“ ”和条件表达式必须保留。二、while 循环intmain(){inti0;while(i5){printf(%d ,i);i;// 输出: 0 1 2 3 4}return0;}可以发现和for循环的变种几乎一模一样。while (条件表达式) 大括号内为循环体。同样是只执行一次初始化表达式然后判断执行完所有语句最后调整参数然后再次判断直到表达式为 假。三、do - while 循环intmain(){inti0;do{printf(%d ,i);// 输出: 0 1 2 3 4i;}while(i5)return0;}依旧和前面两个循环很相似。初始化执行语句调整参数判断是否继续执行真 继续执行假 停止循环。与前两个不同的是do-while循环必须执行一次语句然后才判断是否继续执行前两个未执行先判断。四、注意事项注意区分 “ ” 和 “ ” 否则容易造成死循环。1 为真0为假while (1) { printf(1); }上述代码将死循环打印 1 。int i 0; while (1) { if (i 5) break; //循环在 i 为 5 时终止 printf(%d , i); // 输出: 0 1 2 3 4 i; }可使用break跳出整个循环。int i 0; while (i7) { i; if (i 5) continue; printf(%d , i); // 输出: 1 2 3 4 6 7 }可使用continue结束当前循环 重新下一次循环continue下面的语句将不被执行。所以上述代码中 i 为 5 时未被打印。注break continue 在循环语句中均可使用且方法相同。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价