【C语言3】流程控制(分支结构、循环结构)

文章目录

  • 3.流程控制(分支结构、循环结构)
    • 3.1 流程的结构种类
    • 3.2 顺序结构
    • 3.3 分支结构
      • 3.3.1 if 分支
      • 3.3.2 switch 分支
    • 3.3 循环结构
      • 3.3.1 for循环
      • 3.3.2 while 循环
      • 3.3.3 do...while 循环
      • 3.3.4 goto循环
      • 3.3.5 循环嵌套
      • 3.3.6 循环辅助语句

此处为C语言汇总版:【C 语言md编辑器版】从0基础开始到熟练掌握【完整篇,共9部分】

3.流程控制(分支结构、循环结构)

第三章思维导图:

3.1 流程的结构种类

  • 顺序结构
  • 分支结构
  • 循环结构

3.2 顺序结构

顾名思义;就是自上而下逐行执行的结构。
以求三角形周长和面积为例:

3.3 分支结构

  • 关系运算符
    <>>=<===!=
    其运用关系运算符的表达式的结果只有:真/假
    C规定:假为0非0即为真。
    tips:当使用==时,可以把常量写在右边,这样当漏掉一个=时,程序编译时会报错,这样可以避免这个错误。

  • 逻辑运算符
    其运用逻辑运算符的表达式的结果也只有:真/假

    • 逻辑与:&&符号两边的表达式同时为真时,其结果才为真。
    • 逻辑或:||符号两边的表达式只要有一个为真,其结果就为真。
    • 逻辑非:真取非为假,假取非为真。

    :逻辑运算符有表达式截断特性。使用&&时,当第一个表达式就为假时,第二个表达式就不会再执行;使用||时,当第一个表达爱是就为真时,第二个表达式就不再执行。这样可以提高计算机运行效率。

3.3.1 if 分支

  • if 简单分支
//若表达式结果为真,则执行大括号中的语句;反之跳过。if(具备逻辑结构的表达式){//当括号内仅一条语句时可省略括号,慎重使用。语句段;}
//若表达式逻辑结果为真则执行;反之执行语句2if(表达式){语句段1;}else//if 可以单独使用,但else 必须配套if。{语句2;}
  • if 阶梯分支
//顺序向下执行,当一个表达式执行为真时执行该括号内的语句,且剩余的其他语句跳过。if(表达式1){语句段1;}elseif(表达式2){语句段2;}elseif(表达式3){语句段3;}......
  • if 嵌套分支
if(表达式1){if(表达式2){语句段;}}

:使用嵌套分支时,嵌套最多不能超过五层,嵌套越多,可读性越差。

3.3.2 switch 分支

switch(表达式){case常量/表达式:case常量/表达式://这里省略break,两个case连在一起表明,只要符合其中一个表达式就执行语句段1.语句段1;break;case常量/表达式:语句段2;break;......default:语句段;break;}

  • 表达式必须是一个具有整型结果的表达式。
  • 当只匹配一个结果时,每个case后面必须加break;当匹配多个时,可以省略。
  • default可以省略。

3.3 循环结构

3.3.1 for循环

for(表达式1;逻辑表达式2;表达式3){循环体;}

表达式1:循环的初始条件。
逻辑表达式2:循环执行的条件,当表达式2执行的结果为真时,执行循环;反之跳出循环。
表达式3:让循环趋于结束的条件。

注意

  • 若省略三个表达式,像这样:for( ; ; ),此时for循环变为死循环,一直执行循环体;
  • 三个表达式均可省略,但是循环初始条件,循环执行的判断条件、循环趋于结束的条件都必须要有。但个人认为一般不常用、不推荐;
  • for循环中三个表达式的位置不能互换;
  • for()后面不能加分号,若是加上分号则是执行了一个空循环;
  • for循环与大括号{}之间不能插入任何其余代码。

3.3.2 while 循环

while(表达式){循环体;}

循环的初始条件:while()前面;
循环执行的条件:具有逻辑结果的表达式;
循环结束的条件:while循环里面。
注意

  • while()后面不能加分号;
  • while()后面的{},当循环体仅有一行语句时可省略,但不建议。
  • 死循环:while(1)

3.3.3 do…while 循环

do{循环体;}while(表达式);

注意

  • do...while语句while后面必须要加分号,且循环体至少执行一次。

3.3.4 goto循环

无条件跳转语句。
搭配条件判断语句构成循环。

lable://条件判断语句if(){循环体;gotolable;}

注意goto语句容易造成程序逻辑混乱,代码可读性差,不建议使用。

3.3.5 循环嵌套

外层循环执行一次,内层循环执行一轮。

3.3.6 循环辅助语句

  • break
    • 循环断路语句:跳出当前循环。
    • 多层循环,只跳出一层循环。
  • continue
    • 循环短路循环:跳出本次循环,提前进入下一次的循环。
  • return
    • 跳出当前函数。
    • returnmain函数中时,一旦遇到return,整个程序就结束了。