当前位置 : 主页 > 编程语言 > c语言 >

C语言循环结构深入刨析

来源:互联网 收集:自由互联 发布时间:2023-02-01
目录 总述 while循环 语法结构 while循环中break和continue break continue for循环 语法结构 for循环中break和continue break continue for循环中省略表达式的问题 for循环嵌套 do-while循环 goto语句 总结 总述
目录
  • 总述
  • while循环
    • 语法结构
    • while循环中break和continue
      • break
      • continue
  • for循环
    • 语法结构
      • for循环中break和continue
        • break
        • continue
      • for循环中省略表达式的问题
        • for循环嵌套
        • do-while循环
          • goto语句
            • 总结

              总述

              生活中不止处处是选择,还时常面临着重复做某事,比如呢,我们日复一日的学习、敲代码、

              C语言中提供了 —while循环—for循环—do-while循环来表达循环

              接下来,对三种循环进行分别介绍

              while循环

              while循环的流程图大致就是这样子

              语法结构

              while( expression )   //判断表达式是否成立,成立就执行循环体,不成立则不进入
              循环体;

              接下来我们使用一下while循环,打印1-10的数字

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

              这便是while最简单的用法,接下来看一下while中的break和continue

              while循环中break和continue

              break

              看到break大家肯定不陌生,选择结构中的switch-case就要搭配着break使用哦

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

              可以看出,当i=5的时候,直接跳出了整个循环不再执行

              break是直接跳出循环,也是直接跳出switch-case

              continue

              在英语中,continue是继续的意思 ,在循环中,表示跳过这次循环进行下一次循环

              #include <stdio.h>
              int main() {
                  int i = 1;
                  while (i < 11)
                  {
                      if (5 == i)
                          continue; // 把break换成continue试一下
                      printf("%d ", i++);
                  }
                  return 0;
              }

              大家可以猜一下,可想而知,大家可能会认为结果是 1 2 3 4 6 7 8 9 10 跳过5,我们来分析一下

              光标一直在闪烁,死循环,那怎么样才能达到跳过5的效果呢,

              核心问题在于**这样i的值没办法变化,那我们把i放在continue前面来试试**

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

              这样continue就不会跳过循环因子 -i 的变化,所以不会死循环,来看结果

              成功跳过了5,大家在while循环中使用continue时一定要注意循环因子的问题

              continue 在while循环中的作用就是:

              • 本次循环中continue后边的代码不会再执行而是直接跳转到while语句的判断部分。
              • 进行下一次循环的入口判断。

              for循环

              语法结构

              for( 表达式1 ; 表达式2 ; 表达式3)

              循环体;

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

              for循环中break和continue

              break

              for循环中break与while循环中break完全相同,表示跳出循环

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

              break基本没啥区别,就是跳出循环

              continue

              for循环中continue跳出的依然是此次循环,但是并不会跳过表达式3

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

              依然是跳过5,continue不会跳过表达式3,意味着i++可以执行,不会造成死循环

              当然,一个人想写bug谁也拦不住他

              比如:

              for循环中省略表达式的问题

              for循环中有3个表达式,都可以省略,但是分号一个不能少

              int main(){
                  int i = 0;
                  //可以写成这样
                  for (i=0;i<10;)
                      ;
                  //还可以这样
                  for(i = 0;;)
                      ;
                  //甚至是这样
                  for(;;);  //三分号一个也不能少
              }

              for(;

              上一篇:C语言驱动开发内核特征码扫描PE代码段
              下一篇:没有了
              网友评论