详解C语言循环语句

一、前言

  • C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构选择结构循环结构
  • 此前通过 详解C语言分支语句选择结构进行剖析。
  • 本篇文章将对其中的循环结构进行详细的分析。

二、循环语句

  • 循环语句主要包括 for 循环、while 循环和 do-while 循环

三、for 循环

1、语法形式

- for语句的语法形式如下:

 for (表达式1; 表达式2; 表达式3) 
	 { 执行语句 } 
  • 表达式1用于循环变量的初始化
  • 表达式2用于循环结束条件的判断
  • 表达式3用于循环变量的调整
  • 示例:
for (int i = 0; i < 5; i++) 
{ printf("%d ", i) }; 

2、执行流程

在这里插入图片描述

  • 1、 首先执行初始化 表达式1,通常用于初始化循环变量。
  • 2.、然后判断条件 表达式2,如果条件为真即 !0,则进入循环体执行语句,如果条件为假 ==0
  • 3.、执行完循环体后,执行调整表达式3,用于更新循环变量的值。
  • 4.、再次回到步骤 2 进行条件判断,如此反复,直到条件表达式为假时,结束循环。
  • 5、整个过程中,表达式1 只被执行1次,剩下的是表达式2执行语句表达式3在进行循环。

3、注意点和易错点:

  • 要确保初始化表达式、条件表达式和迭代表达式的正确性和逻辑合理性。
  • 注意循环变量的作用域,避免意外的修改。

四、while 循环

1、语法形式

  • while语句的语法形式如下:
 while (判断表达式) 
 { 执行语句 } 
  • 判断表达式用于执行条件的判断
  • 执行语句用于循环语句的执行
    示例:
int i = 0;
 while (i < 5)
  { printf("%d ", i); i++; } 

2、执行流程

在这里插入图片描述

  • 首先,执行 判断表达式,如表达式值为0,则循环结束;如表达式值为**!0**,则执行循环语句,语句执行完毕后继续进行判断表达式,是否满足条件。

3、if和while的对比

  • if 语句和 while 语句都有条件判断,但它们的使用场景和执行方式有所不同,下面是两者的具体区别:
- 使用场景:
- if 语句:适用于需要根据条件选择性地执行某段代码的情况。
- while 语句:适用于需要重复执行某段代码直到条件不再满足的情况。
- 执行方式:
- if 语句:如果条件为真,则执行 if 代码块中的语句,执行完毕后,
继续执行后续的代码,不会再次判断条件。
- while 语句:先判断条件是否为真,如果为真,则执行 while 代码
块中的语句,执行完毕后,再次判断条件,直到条件为假,才停止循环。
  • 下面是一个使用 if 语句和 while 语句的示例:
  • if 语句示例
num = 5;
if (num > 10)
   print("num 大于 10");
else
   print("num 小于或等于 10");
  • while 语句示例
num = 1;
while (num <= 5)
    {
    print("num 的值为:%d", num);
    num += 1;
    }
  • 在上述示例中,定义了变量 num 并分别赋值为 5 和 1。
  • 然后使用 if 语句判断 num 的值是否大于 10,并根据判断结果输出相应的信息。接下来使用 while 语句判断 num 的值是否小于或等于 5,如果是,则执行 while 代码块中的语句,输出 num 的值,并将 num 的值加 1,直到 num 的值大于 5 为止。

4、注意点和易错点

  • 容易出现忘记修改循环条件导致死循环的情况。
  • 同样要注意循环变量的处理。

五、do-while 循环

1、语法形式

  • do while语句的语法形式如下:
do { 语句 } 
while (条件表达式); 
  • 先执行一次语句
  • 再通过条件表达式来判断条件是否满足循环条件

示例:

int i = 0; 
do 
{ printf("%d ", i); i++; } 
while (i < 5); 

2、执行流程

在这里插入图片描述

  • do while 循环中,先执行 语句 ,执行完成后,在去执行 判断表达式 ,如果判断表达式 的结果是 0 ,则结束循环;如果 判断表达式 的结果是 !0,则继续循环,执行语句。

3、注意点和易错点

  • 要特别注意条件的设置,确保最终能正常结束循环。

六、break和continue语句

1、break和continue的在循环中的重要作用

  • 在 C 语言中, breakcontinue 语句都可以在循环语句中使用,用于控制循环的执行。它们的具体作用如下:

  • break 语句的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。

  • continue 语句的作用是跳过本次循环 continue 后边的代码,直接去判断部分,进行下一次循环的判定。

2、循环语句中举例

  • 下面是使用三种循环语句的示例:
//for循环中使用break和continue
#include <stdio.h>
int main()
{
   //使用break
   for (int i = 1; ; i++) 
   {
       if (i <= 100)
        {
           printf("%d ", i);
        } 
       else
        {
           break;
        }
   }
   printf("\n");
   //使用continue
   for (int i = 1; i > 0; i++)
    {
       if (i <= 100) 
       {
           printf("%d ", i);
       } 
       else
       {
           continue;
       }
   }
   return 0;
}
//while循环中使用break和continue
#include <stdio.h>
int main()
{
   //使用break
   int i = 1;
   while (i!= 0)
    {
       printf("%d ", i);
       i++;
       if (i > 100) 
       {
           break;
       }
   }
   printf("\n");
   //使用continue
   i = 1;
   while (i!= 0) 
   {
       if (i > 100) 
       {
           continue;
       }
       printf("%d ", i);
       i++;
   }
   return 0;
}
//do while循环中使用break和continue
#include <stdio.h>
int main()
{
   //使用break
   int i = 1;
   do {
       printf("%d ", i);
       if (i >= 100)
       {
           break;
       }
   } while (i++);
   printf("\n");
   //使用continue
   i = 1;
   do {
       if (i > 100)
       {
           continue;
       }
       printf("%d ", i);
       i++;
   } while (i++);
   return 0;
}

在上述代码中, break 和 continue 的区别主要体现在以下几个方面:

  • break 会立即结束整个循环,并跳出循环体外。而 continue 则只会结束当前一次循环,继续执行下一次循环。
  • 使用 break 时,循环条件中的值不再被检查,直接跳出循环。而使用 continue 时,循环条件仍然被检查,只是当前一次循环被跳过。
  • 通常情况下, break 用于退出循环,而 continue 用于跳过某些特定的迭代。

七、循环的嵌套

  • 在 C 语言中,循环的嵌套是指在一个循环结构中,再嵌套一个或多个完整的循环结构。嵌套的循环可以是相同类型的循环,也可以是不同类型的循环,例如在一个 for 循环中嵌套一个 while 循环,或者在一个 while 循环中嵌套一个 do-while 循环。

  • 以下是一个使用 for 循环嵌套的示例代码,用于打印一个九九乘法表:

#include <stdio.h>

int main() {
   int i, j;

   for (i = 1; i <= 9; i++) 
   {
       for (j = 1; j <= i; j++) 
       {
           printf("%d*%d=%d ", j, i, i * j);
       }
       printf("\n");
   }

   return 0;
}
  • 在上述代码中,我们使用了两个嵌套的 for 循环。外层循环控制行数,从 1 到 9。内层循环控制每行的乘法表达式数量,从 1 到当前的行数。在内层循环中,通过打印乘法表达式 j * i 来显示乘法表的内容。每行结束后,我们使用 printf(“\n”); 换行,以便在下一行继续打印。

  • 循环嵌套的执行顺序是先执行外层循环的一次迭代,然后执行内层循环的所有迭代。在内层循环执行完毕后,再进行外层循环的下一次迭代。这个过程会一直重复,直到外层循环执行完毕。

八、go to语句

1、基本作用

  • 在C语言中, 提供了一种特别的语法,可以使用goto 语句无条件转移到同一函数内的被标记的语句。
  • 例如:
#include <stdio.h>

int main() {
    int a = 10;
    LOOP:
        do {
            if (a == 15) 
            {
                a = a + 1;
                goto LOOP;
            }
            printf("a 的值:%d\n", a);
            a++;
        } while (a < 20);
    return 0;
}
  • 上述代码中, goto 语句将控制转移到了 LOOP 标签处,从而实现了跳过迭代的效果。

2、注意事项

  • 一般来说,在C语言中不建议使用 goto 语句,因为它会使程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序都可以改写成不需要使用 goto 语句的写法。

九、总结

  • 循环语句为程序实现重复执行特定代码段提供了灵活的方式,开发者可以根据具体需求选择合适的循环结构来实现相应的逻辑。
  • for 循环
for (初始化表达式; 条件表达式; 调试表达式) 
{
    // 循环语句
}
  •   它具有明确的初始化、条件判断和迭代更新步骤,结构清晰,使用广泛。
    

while 循环


while (条件表达式) {
    // 循环语句
}
  •   先判断条件,条件为真则执行循环体。
    

do-while 循环

do {
    // 循环语句
} while (条件表达式);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值