【C语言】C控制语句—循环

简介: 【C语言】C控制语句—循环

while语句

语法结构:

1. while ( expression )
2. 
3.      statement

statement部分可以是以分号结尾的简单语句,也可以是用花括号括起来的复杂语句


如果expression为真(非零),执行statement部分一次,然后再次判断expression。在expression为假(0)之前,循环的判断和执行一直在重复进行。每次循环都被称为一次迭代。


拓展:在C中,真的概念很宽泛,所有的非零值都被视为真,只有0被视为假。C99专门针对真假类型的变量提出了_Bool类型,_Bool类型变量只能只能存储1(真)或假(0),如果把其他非零数值赋给此类型变量,该变量会被设置为1。


在构建while循环时必须让测试值有变化,表达式最终的结果要为假,否则循环就不会终止(实际上还可以用break语句if语句来终止循环,后面会说到),如下此代码段执行就会不停的打印"Good moring"

index = 1;
while (index < 5)
    printf("Good morning!\n");

while循环经常使用关系表达式:

简单的关系表达式由关系运算符及其运算对象组成,如果关系为真,关系表达式的值为1如果关系为假,关系表达式的值为0。

       示例:

      5 > 2 为真,关系表达式的值为1

     ( 2 +  a )==  a  为假,关系表达式的值为0

关系表达式中间的运算符叫关系运算符,每个运算符都把它左侧的值和右侧的值相比较。

关系运算符

运算符 含义
< 小于
<= 小于或等于

==

等于
>= 大于或等于
> 大于
!=

不等于

C语言中引入了break语句和if语句来跳出循环

break:

在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。

所以:while中的break是用于永久终止循环的。

#include <stdio.h>
int main()
{
  int i = 1;
  while (i <= 10)
  {
    if (i == 5)
      break;
    printf("%d ", i);
    i = i + 1;
  }
  return 0;
}

该代码运行结果:1 2 3 4,当i ==5时,循环结束,5不打印


continue:

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,

而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

#include <stdio.h>
int main()
{
  int i = 1;
  while (i <= 10)
  {
    if (i == 5)
      continue;
    printf("%d ", i);
    i = i + 1;
  }
  return 0;
}

当i==5时跳过continue后面的语句(while循环中的),所以该程序执行结果为:1 2 3 4


for语句

循环结构一般包含三个部分:初始化,判断部分,调整部分


语法结构: for(表达式1; 表达式2; 表达式3)


                       statement

注解:表达式1在执行for语句之前只执行一次;然后对表达式2求值,如果表达式为真,执行循环一次;接着对表达式3求值,并再次检查表达式2。for语句是一种入口条件循环,即在执行循环之前就决定了是否执行循环。因此,for循环可能一次都不执行。statement部分可以是一条简单语句或复杂语句。


表达式**1**

表达式1为初始化部分,用于初始化循环变量的。

第一个表达式不一定是给变量赋初值,也可以使用printf()。在执行循环的其他部分之前,只对第一个表达式求值一次或执行一次

for (printf("Keep entering numbers!\n");num != 6;scanf("%d",&num))

表达式**2**

表达式2为条件判断部分,用于判断循环时候终止。

表达式**3**

表达式3为调整部分,用于循环条件的调整。


建议:for循环不可在循环体内修改循环变量,防止for循环失去控制

建议for语句中的循环控制变量的取值采用“前闭后开区间”写法

可以省略一个或多个表达式但是不能省略分号,只要在循环中包含能结束循环的语句即可(判断部分省略的话,此部分恒为真)


do while语句

语法:

do

   循环语句;

while (表达式);


注解:在表达式为假或0之前重复执行循环语句,do while循环是出口条件循环,即在每次迭代之后检查测试条件,保证了循环至少执行一次,但是使用场景有限,所以不是经常使用

do
    scanf("%d", &number);
while (number != 20);

do while语句中的break和continue

#include <stdio.h>
int main()
{
     int i = 10;
     do
     {
        if(5 == i)
            break;
     printf("%d\n", i);
     }    while(i<10);
             return 0; 
}
#include <stdio.h>
int main()
{
     int i = 10;
     do
     {
        if(5 == i)
            continue;
     printf("%d\n", i);
     }while(i<10);
     return 0; 
}

goto语句

C语言中提供了可以随意“滥用”的 goto语句和标记跳转的标号。从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码,但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。

for(...)
    for(...)
   {
        for(...)
       {
            if(disaster)
                goto error;
       }
   }
error:
 if(disaster)
         // 处理错误情况

只能在一个函数范围内跳转,不能跨函数,运用于跳出多层嵌套

相关文章
|
2月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
78 5
|
5月前
|
C语言
【C语言】循环语句
C语言中循环语句的相关知识点
55 2
【C语言】循环语句
|
3月前
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
236 88
|
2月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
48 6
|
2月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
2月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
2月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
19 0
|
2月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
3月前
|
C语言
【C语言基础考研向】08判断语句与循环语句
本文介绍了C语言中的关键编程概念:首先解析了关系表达式与逻辑表达式的优先级及计算过程;接着详细说明了`if-else`语句的使用方法及其多分支和嵌套应用;然后讲解了`while`循环与`for`循环的语法和注意事项;最后介绍了`continue`和`break`语句在控制循环中的作用和示例代码。
|
2月前
|
编译器 C语言 C++
【C语言】循环语句(语句使用建议)
【C语言】循环语句(语句使用建议)