【C语言基础】循环语句(易混知识点)

本文详细介绍了while、if、for、do-while语句的区别,包括它们的基本语法、执行流程以及break和continue在这些循环中的行为。重点讨论了循环的条件判断、循环次数控制以及在遇到多条语句时的处理方式。
摘要由CSDN通过智能技术生成

目录

一、while和if语句很相似? 怎么区分?

1.基本语法

2.相似处:

3.区别:

三.for循环后括号内三个表达式的作用及其执行顺序?

作用:

执行顺序:

四.do-while和while的区别?

1.基本语法

2.区别

五.循环体内想执行多个语句的时候怎么办?

六. break和continue的区别?

七.while、for、do-while使用break和continue有区别吗?

1.结论:

2.while使用break(for同理)

3.while和for使用continue


一、while和if语句很相似? 怎么区分?

1.基本语法

while语句基本语法:

while(表达式)
{
  语句;//语句可有多条,当表达式为真1时才执行{}内的语句
}

if语句基本语法:

if(表达式)
{
  语句;//语句可有多条,当表达式为真才执行{}内的语句
}

2.相似处:

语法结构相似

3.区别:

while语句可以起到循环的作用:只要while后的表达式为真就执行{ }内的语句,直到表达式为假,跳出当前while循环

if语句不会循环


 二、while的执行流程?

执行流程分析:

先判断表达式的真假:若为真,执行{ }内的语句,执行完后再判断,直到表达式为假,跳出循环。                                        若为假,直接跳出当前当前while循环。

例如:

int i = 0
while(i < 3 )//先判断,为真则执行
{
  printf("%d\n",i);
  i++;
}
//输出结果应为 0 1 2

执行流程:

1.此时 i = 0, 先判断 i < 3 ,成立 ——>执行语句:打印 i (此时i = 0) ——>i++

2.此时 i = 1, 先判断 i < 3 ,成立 ——>执行语句:打印 i (此时i = 1)——>i++

3.此时 i = 2, 先判断 i < 3 ,成立 ——>执行语句:打印 i (此时i = 2)——>i++

4.此时 i = 3, 先判断 i < 3 ,不成立 ——>跳出当前while循环


三.for循环后括号内三个表达式的作用及其执行顺序?

for的语法:

for(表达式1; 表达式2; 表达式3)
{
  语句;//可多条
}

作用:

1.表达式1:循环变量初始化

2.表达式2:判断条件:返回 真或假

3.表达式3:循环变量迭代:避免死循环

执行顺序:

第1种:表达式1——>表达式2——>执行语句——>表达式3

例如:

for(int i = 0; i < 2; i++)
{
  printf("%d\n", i);
}

1.此时 i = 0 ——>判断 i < 2,成立——>打印 i (此时 i = 0)——>i++

1.此时 i = 1 ——>判断 i < 2,成立——>打印 i (此时 i = 1)——>i++

1.此时 i = 2 ——>判断 i < 2,不成立——>跳出当前while循环

第2种:表达式1——>表达式2——>直接退出当前for循环

例如:

for(int i = 0; i < 0; i++)
{
  printf("%d\n",i);
}

1.此时 i = 0 ——>判断 i < 0,不成立——>退出当前while循环


四.do-while和while的区别?

1.基本语法

do-while:

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

while:

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


2.区别

1.do-while先执行,再判断 ;while先判断,再执行

2.do-while至少会执行一次循环体


五.循环体内想执行多个语句的时候怎么办?

加大括号,将想执行的多个语句放在{ }里


六. break和continue的区别?

1.break 执行时,永久终止循环(终止break外的第一层循环)

2.continue执行时,跳过本次循环(跳过本次continue后的代码) 


七.while、for、do-while使用break和continue有区别吗?

1.结论:

(1)while和for使用break产生的效果相同,使用continue产生的效果不同

          原因:continue执行时不跳过for的表达式3

(2)while和do-while使用continue和break产生的效果相同       


2.while使用break(for同理)

举例:

int i = 0;
while(i < 3)
{
  if(i == 1)
  {
   break;//当i == 1时,循环终止
  }
  printf("%d\n",i)
  i++;
}

 执行流程:1. i = 0, i < 3成立——>i == 1不成立——>打印 i ,(i = 0)——>i++

                   2. i = 1, i < 3成立——>i == 1成立——>终止break所在的循环


3.while和for使用continue

 (1)while使用continue:

例如:

int i = 0;
while(i < 3)
{
  if(i == 1)
  {
   continue;//当i == 1时,跳过continue后的代码
  }
  printf("%d\n",i)
  i++;
}

 执行流程:1. i = 0, i < 3成立——>i == 1不成立——>打印 i ,(i = 0)——>i++

                   2. i = 1, i < 3成立——>i == 1成立——>本次跳过continue后的代码

                      ——>既不执行打印 i ,也不执行 i++

                   3.此后死循环 i = 1, i < 3成立——>i == 1成立——>本次跳过……


(2)for使用continue:

例如:

for(int i = 0; i < 3; i++)
{
  if(i == 1)
  {
    continue;//当 i == 1 时跳过continue后的代码
  }
  printf("%d",i);
}

  执行流程:1. i = 0, i < 3成立——>i == 1不成立——>打印 i ,(i = 0)——>i++

                    2. i = 1, i < 3成立——>i == 1成立——>本次跳过continue后的代码

                      ——>不打印 i ,但要执行 i++

                    3. i = 2 ,i < 3成立——>i == 1不成立——>打印 i ,(i = 0)——>i++

                     ……

                    4.此后不会死循环,当表达式2为假则退出当前循环

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值