【C语言初阶】循环语句

news/2024/11/20 21:35:28/

在这里插入图片描述
在这里插入图片描述

文章目录

  • 💐专栏导读
  • 💐文章导读
  • 🌷什么是循环
  • 🌷while循环
  • 🌷do while循环
  • 🌷for循环
  • 🌷循环结构中的break与continue
    • 🌺break
    • 🌺continue
  • 🌷goto语句

💐专栏导读

🌸作者简介:花想云,在读本科生一枚,致力于 C/C++、Linux 学习。

🌸专栏简介:本文收录于 C语言初阶专栏,本专栏主要内容为C语言的初阶知识的全套讲解,包含初识C语言、函数、数组、分支与循环、操作符、指针初阶的讲解。

🌸相关专栏推荐:C语言进阶系列数据结构与算法

💐文章导读

本篇文章主要内容为学习C语言中的循环结构,并掌握whiledo whilefor三种形式的循环,并认识关键字breakcontinue以及goto语句。


🌷什么是循环

什么是循环?简单定义,循环就是不断地重复做一件事情。在一段程序中,同样也能实现循环。C语言为我们提供了三个关键字来实现三种不同形式的循环:

  • while
  • for
  • do while

虽然有三种不同形式的循环,但它们也仅仅是长的样子不同罢了。不管是哪一种循环方式,都是由两个基本结构组成的:

  • 循环的内容
  • 进入循环的条件

首先来看看while循环。

🌷while循环

while的语法结构很简单:

while(表达式)
{...//循环语句
}
  • 表达式:进入循环的条件若表达式的结果为真,则执行循环语句;若为假,则不执行
  • 循环语句: 循环的内容

举个例子,若是我们需要在屏幕上打印 0—9 的数字,只需这样写:

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

运行结果
这段代码的运行逻辑是:

  • 判断表达式是否为真,若为真,则进入循环,执行循环语句
  • 执行完循环语句,再次判断表达式是否为真,若为真,就继续执行循环语句,如此往复

再来看看while循环的兄弟——do while。

🌷do while循环

do while循环的语法结构是这样的:

do
{//...(循环语句)
}while(表达式);
  • 表达式:进入循环的条件若表达式的结果为真,则执行循环语句;若为假,则不执行
  • 循环语句: 循环的内容

do while循环与while循环非常相似,只有一点不同:

  • while先判断表达式,再执行循环语句
  • do while先执行循环语句,再判断表达式

若我们还想在屏幕上打印 0—9 ,则需要这样写:

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

运行结果

再来认识一下for循环。

🌷for循环

for循环的语法结构:

for(表达式1; 表达式2; 表达式3)
{...//循环语句;
}
  • 表达式1:用于初始化循环变量
  • 表达式2:用于判断进入循环的条件是否为真
  • 表达式3:用于控制循环遍历

什么是循环变量

  • 用于控制循环的变量,例如上面两个例子中的变量i;

for循环所说与while循环长相差异有点大。但是对比一下就会发现相似的地方:

  • while循环的循环变量定义在{}的外面,for循环可以定义在()外面,也可以定义在()里面。
  • 1,2两种写法其实并没有本质区别,只不过第一种写法是C99标准才支持的。
1.定义在里面(C99支持)
for (int i = 0; i < 10; i++);
2.定义在外面
int i = 0;
for (i = 0; i < 10; i++);
  • while循环的判断是否进入循环的表达式在()中,for循环的判断为表达式2
  • while循环控制循环变量的语句{}内,for循环中为表达式3

利用for循环在屏幕上打印 0—9 的数字,应该这样写:

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

运行结果

🌷循环结构中的break与continue

为了好的控制循环,C语言还为我们提供了两个关键字breakcontinue,以适应各种复杂的情况。

🌺break

这里的break与上一章分支语句中的switch语句中的break作用相似。

break的作用:

  • 在循环结构中当程序执行到break时,就立即停止循环并彻底结束循环

用法示例:

在打印0—9的过程中,加入break语句,看看是什么效果:

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

运行结果
这段程序的运行逻辑是:

  • 在循环的过程中,当 i 的值为5时。满足进入if的条件,执行break,循环就不会在往下执行
  • 注意,这时i的值是5.屏幕上打印1—4

break在三种循环中的作用都是相同的,这里就不再一一举例。

🌺continue

continue的作用:

  • 在循环结构中,当程序执行到continue语句时,不再执行本次循环,直接进入下一次循环。注意,不是彻底结束循环,而仅仅是结束本次循环

用法示例:

打印 0—9 的数字时,不想打印5:

int main()
{int i = 0;for (int i = 0; i < 10; i++){if (i == 5){continue;}printf("%d ", i);}return 0;
}

在这里插入图片描述

🌷goto语句

C语言中提供了可以随意滥用的 goto 语句和标记跳转的标号。从理论上 goto 语句是没有必要的,实践中没有 goto 语句也可以很容易的写出代码。

但是某些场合下 goto 语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。

  • 例如,一次跳出两层或多层循环

多层循环这种情况使用 break 是达不到目的的。它只能从最内层循环退出到上一层的循环。

goto 语言真正适合的场景如下:

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

如上,程序中不管嵌套了多少层循环,只要遇到goto语句,就会跳到goto语句标记(例如error)的地方并继续向下执行。
在这里插入图片描述

点击下方个人名片,可添加博主的个人QQ,交流会更方便哦~
*** ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓***


http://www.ppmy.cn/news/34772.html

相关文章

打怪升级之FPGA组成原理(LE部分)

FPGA芯片逻辑单元的原理 不论你使用哪一款FPGA芯片&#xff0c;其核心可编程逻辑单元都是从一段内存种按顺序读取执行并执行的过程。具体来说&#xff0c;FOGA芯片内部包括可编程逻辑块(LAB)、可配置输入输出单元(IOE)、时钟管理模块、嵌入式RAM(BRAN&#xff0c;在Cyclone IV…

【Vue】快速入门

目录 一、前言 二、Vue简介 2.1 vue是什么 2.2 谁开发的 2.3 Vue的特点 三、搭建Vue开发环境 3.1 安装Vue Devtools 3.2 关闭开发模式提示信息 3.3 遇到的问题 四、HelloWorld小实例 4.1 案例制作 4.2 案例分析 五、结语 一、前言 大家好&#xff0c;我是初心&…

【总结】面向对象

面向对象 1. 编程思维 根据面对问题不同人层显示的思维模式不同&#xff0c;将编程思维分为三种&#xff1a; 1&#xff09;面向过程编程&#xff08;穷人思想&#xff09; - 遇得到问题想到的是解决这个问题的具体逻辑和步骤 2&#xff09;函数式编程&#xff08;小资思想…

[前端笔记037]vue2之vuex

前言 本笔记参考视频&#xff0c;尚硅谷:BV1Zy4y1K7SH p105 - p116 vuex简介和基本使用 概念&#xff1a;专门在 Vue 中实现集中式状态&#xff08;数据&#xff09;管理的一个 Vue 插件&#xff0c;对 vue 应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&…

hive的环境搭建

hive的tar包下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1m3VKT2-kIgR1QyjmfnWvGw?pwdr45r 提取码&#xff1a;r45rmysql的tar包&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1--s1m3hfNNKEVGkFEqi5iA?pwdb7h4 提取码&#xff1a;b7h4由于hive的元…

C语言——字符函数和字符串函数【详解】(一)

文章目录函数介绍1.strlen2.strcpy3. strcat4. strcmp5. strncpy6. strncat7. strncmp8. strstr函数介绍 求字符串长度 strlen 长度不受限制的字符串函数&#xff08;使用时不安全&#xff09; strcpy strcat strcmp 长度受限制的字符串函数介绍&#xff08;与长度不受限制函数…

【Spring Cloud Alibaba】2.服务注册与发现(Nacos安装)

文章目录环境要求简介安装Nacos源码安装Docker安装数据库配置访问服务我们要搭建一个Spring Cloud Alibaba项目就绕不开Nacos&#xff0c;阿里巴巴提供的Nacos组件&#xff0c;可以提供服务注册与发现和分布式配置服务&#xff0c;拥有着淘宝双十一十几年的流量经验&#xff0c…

Java正则表达式及Pattern与Matcher使用详解

文章目录一、正则表达式详解1、符号定义&#xff08;1&#xff09;基本书写符号&#xff08;2&#xff09;限定符&#xff08;3&#xff09;匹配字符集&#xff08;4&#xff09;分组构造&#xff08;5&#xff09;字符转义2、常用正则表达式举例3、Java中RegularExpressionVal…