分支语句和循环语句

BIT-2-分支语句和循环语句

文章目录

    • BIT-2-分支语句和循环语句
    • 1.什么是语句
    • 2.分支语句(选择结构)
      • 2.1if语句
        • 2.1.1语法结构
        • 2.1.2悬空else
      • 2.1.3 if书写形式的对比
      • 2.2switch语句
        • 2.2.1常用语句
      • 2.22语法结构
      • 2.2.3case和break
      • 3循环语句
      • 3.1while循环
        • 3.1.1定义
      • 3.2for循环
        • 3.2.1语法
        • 3.2.2break和continue在for循环中
        • 3.2.3for循环控制变量
        • 3.2.4一些for循环的变种
        • 3.2.5 一道笔试题(坑)
      • 3.3 do...while()循环
          • 3.3.1do语句的语法
          • 3.3.2图解
          • 3.3.3 do语句的特点
          • 3.3.4

1.什么是语句

c语句可分为一下五类
1.表达式语句
2.函数调用语句
3.控制语句
4.复合语句
5.空语句
本章后面介绍的是控制语句。
控制语句:用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句
分类:

  1. 条件判断语句也叫分支语句:if语句、switch语句;
  2. 循环执行语句:do while语句、while语句、for语句;
  3. 转向语句:break语句、goto语句、continue语句、return语句。
    分支语句和循环语句_第1张图片

2.分支语句(选择结构)

分支语句和循环语句_第2张图片

2.1if语句

2.1.1语法结构
单分支
    if(表达式)
       语句;
双分支
    if(表达式)
       语句1;
   else
       语句2;
多分支    
   if(表达式1)
       语句1;
   else if(表达式2)
       语句2;
   else
       语句3;

解释一下:
如果表达式的结果为真,则语句执行。

在C语言中如何表示真假?
0表示假,非0表示真

注意
1.
分支语句和循环语句_第3张图片
2.
分支语句和循环语句_第4张图片

2.1.2悬空else

else具有就近原则
例子(坑)

#include 
int main()
{
    int a = 0;
    int b = 2;
    if(a == 1)
        if(b == 2)
            printf("hehe\n");
    else
        printf("haha\n");
    return 0;
}

问:输出为什么
答案:无输出
原因
分支语句和循环语句_第5张图片

//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#include 
int main()
{
    int a = 0;
    int b = 2;
    if(a == 1)
   {
        if(b == 2)
       {
            printf("hehe\n");
       }
   }
    else
   {
         printf("haha\n");
   }       
    return 0;
}

2.1.3 if书写形式的对比

分支语句和循环语句_第6张图片
建议代码4

2.2switch语句

2.2.1常用语句

常常用于多分支的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日

2.22语法结构

//1.每个分支结果不同
switch(整型表达式)
{
case 整形常量表达式:
语句;
break;
case 整形常量表达式:
语句;
break;
.........

default:
语句;
break//2.几个分支结果相同
#include 
//switch代码演示
int main()
{
    int day = 0;
    switch(day)
   {
        case 1case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
   }
    return 0;
}

2.2.3case和break

case是分支开始标志
break是分支结束的标志;在没有break时语句将一直进行下去。

编程好习惯
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

3循环语句

while
for
do while

3.1while循环

3.1.1定义
while(表达式)
{
 语句
 }
 

图解
分支语句和循环语句_第7张图片

例子
#include 
int main()
{
 int i = 1;
 while(i<=10)
 {
 printf("%d ", i);
 i = i+1;
 }
 return 0;
}

①和②
分支语句和循环语句_第8张图片
③和④
③contine————是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
图解
分支语句和循环语句_第9张图片

④break—————终止循环
分支语句和循环语句_第10张图片

3.2for循环

已有while循环,为什么还要一个for循环呢?

3.2.1语法
for(表达式1;表达式2;表达式3{
循环语句;
}

表达式
表达式1为初始化部分,用于初始化循环变量。
表达式2为条件判断部分,用于判断循环时候终止。
表达式3为调整部分,用于循环条件的调整。
for(初始化部分,判断部分,调节部分)

while循环和for循环的区别
区别1:
for循环条件集中,while循环条件分散。
分支语句和循环语句_第11张图片
分支语句和循环语句_第12张图片

区别2
”i++“的位置不同,导致continue在for循环的结果和while的结果不同
分支语句和循环语句_第13张图片
原因:判断条件:for循环中有i++,而while循环中没有。

![在这里插入图片描述](https://img-blog.csdnimg.cn/ab8dcdd1066e4e6db6de676a100c30ee.png

3.2.2break和continue在for循环中

for循环中也可以出现break和continue,他们的意义和在while循环中是一样的。
但是还是有些差异:见(区别2)
图解
分支语句和循环语句_第14张图片

3.2.3for循环控制变量

建议

-1.不可在for循环体内修改循环变量,防止for循环失去控制。
-2.建议for语句的循环控制变量的取值采用“前闭后开”的写法。
分支语句和循环语句_第15张图片

3.2.4一些for循环的变种

for循环中的初始化部分,判断部分,调节部分都可以省略的。
如果把判断语句部分省略了,就意味着判断恒为真。——>使循环变为死循环
建议不省略。

1.初始化部分,判断部分,调节部分都可以省略的

#include
int main()
{
for(; ;)
{
printf("hehe\n");
}

2.建议不省略
分支语句和循环语句_第16张图片
3.使用多余一个变量控制循环

3.2.5 一道笔试题(坑)

分支语句和循环语句_第17张图片

3.3 do…while()循环

3.3.1do语句的语法
do
  循环语句;
while(表达式);
3.3.2图解

分支语句和循环语句_第18张图片

3.3.3 do语句的特点

循环至少执行一次,使用的场景有限,所以不是经常使用。

3.3.4
#include 
int main()
{
 int i = 1;
 do
 {
        if(5 == i)
            break;
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
    
 return 0;
}
#include 
int main()
{
 int i = 1;
    
 do
 {
        if(5 == i)
            continue;
 printf("%d ", i);
        i=i+1;
 }while(i<=10);
    
 return 0;
}

你可能感兴趣的:(c语言,c++,开发语言)