07-控制循环

1.二路分支

                逻辑:程序中某一段代码需要满足一顶得条件才会被执行

                语法:

  •                            if语句:表达一种,如果条件满足则执行某个代码块
  •                            if-else语句:如果条件满足执行某个代码块否则执行另外一个代码块

注意:

       if语句可以单独使用,但是else不可以单独使用,必须在if后面配套使用。

2.多路分支

            逻辑:根据不同得条件执行不同得代码块

            语法:

switch    (表达式<判断的条件)

{
    case<常量1>:

      //代码块

       break;

     case<常量2>:

      //代码块

       break;
 
     case<常量3>:

      //代码块

       break;


     default:
      //代码块
}

注意:

 switch(num)语句中的num必须是整形(char、short,int,long等)或枚举类型。(char也属于整形)。。

case 后面的值必须是整形常量,包括普通的字符。不包括被const修饰的整形数据,而不能是变量。

default 是可选的,当没有匹配的case时,执行default。不是必须存在的。

break 语句可以使程序跳出switch语句块,如果没有break,会执行下一个case 语 句块,直到遇到break或者执行到switch结尾,这个现象称为穿透。

3.while和do...while循环

                       逻辑;     使得程序中某一端代码块重复执行

                       语法:

while(表达式)
{

   /// 代码块


}

while的逻辑:.

do...while的逻辑:

do...while语法:

do
{
    //代码块

}
    while(表达式)

注意: 

  •          while循环先进行判断条件,条件为真然后在执行代码块(有可能一次不执行)
  •          do...while循环先执行代码块在判断条件是否成立(最少执行一次)
  •          while(num)        加了分号就变成空循环了
  •          do...while(num);      这个分号不能丢

4.for循环语句

            逻辑:与while类似,都是让程序中某一段代码块重复运行,但是for相对于while来说更紧凑。把所有循环控制都集中到一行代码中。

for(初始化语句;判断语句;表达式(一般用于自加和自减))

{


          /// 代码块
}

     实例:

for(size_t i = 0;i < num; ++i)
{

     printf("i:%ld\n",i);
}

注意:

  •    初始化语句只会被执行一次
  •    第三个表达式中第一次循环时++i在第一次循环时并没有执行
  •    第三个表达式中前缀/后缀并不影响i再循环中取值的先后
  •     在for循环中直接定义并初始化只在C99的编译规则下可以这么干, 所 以可以添加

5.break和continu:

     break:跳出循环结构 / 跳出当前层的循环

     continu:结束当前循环,进行下一次的循环

  

6.goto语句

                  逻辑:跳转语句------无条件跳转

                  语法:

                   实例:

注意:

  • 标签后面有个冒号:
  • goto 语句是一个无条件跳转的语句, 不利于程序的可读性,一般不建议使用
  • goto 语句一般出现在驱动比较多, 用来处理严重的错误,并退出