C语言编程中复杂的循环结构,你被循环晕了吗?

当一段代码需要执行多次时,您可能会遇到这种情况。通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。

编程语言提供各种控制结构,允许更复杂的执行路径。

循环语句允许我们多次执行语句或语句组。下面给出的是大多数编程语言中循环语句的一般形式

C编程语言提供以下类型的循环来处理循环要求。

1. while循环

2. For循环

3. Do...while循环

4. 嵌套循环

而在C语言编程循环,只要给定的条件为真,重复执行一个目标语句。

语法

C编程语言中while循环的语法是 -

while(condition) {

statement(s);

}

这里,语句可以是单个语句或语句块。所述条件可以是任何表达,和真正的是任何非零值。当条件为真时,循环迭代。

当条件变为假时,程序控制传递到紧接循环之后的行。小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:【 六二七,零一二,四六四 】适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程

在这里,要注意的关键点是while循环可能根本不执行。当测试条件并且结果为假时,将跳过循环体并且将执行while循环之后的第一个语句。

#include

int main {

/*localvariable definition */

int a = 10;

/* while loop execution */

while( a < 20 ) {

printf("value of a: %d ", a);

a++;

}

return 0;}

C编程语言中for循环的语法是 -

for ( init; condition;increment) {

statement(s);

}

以下是'for'循环中的控制流程

l 所述初始化步骤首先被执行,并且只有一次。此步骤允许您声明和初始化任何循环控制变量。只要出现分号,就不需要在此处输入声明。

l 接下来,评估条件。如果为真,则执行循环体。如果为false,则循环体不执行,控制流在'for'循环之后跳转到下一个语句。

l 在执行'for'循环的主体之后,控制流会跳回到增量语句。此语句允许您更新任何循环控制变量。只要在条件之后出现分号,此语句就可以留空。

l 现在再次评估该条件。如果为真,则循环执行并且过程自身重复(循环体,然后递增步骤,然后再次调节)。条件变为false后,'for'循环终止。

#include

int main {

int a;

/* for loop execution */

for( a = 10; a < 20; a = a + 1 )

{

printf("value of a: %d ", a);

}

return 0;

}

C编程语言中do ... while循环的语法是 -

do {

statement(s);

} while( condition );

请注意,条件表达式出现在循环的末尾,因此循环中的语句在测试条件之前执行一次。

如果条件为真,则控制流跳回来执行,循环中的语句再次执行。重复此过程直到给定条件变为假。

#include

int main {

/*localvariable definition */

int a = 10;

/* do loop execution */

do {

printf("value of a: %d ", a);

a = a + 1;

}while( a < 20 );

return 0;

}

循环控制语句

循环控制语句将执行从其正常序列更改。当执行离开作用域时,将销毁在该作用域中创建的所有自动对象。

C支持以下控制语句(自行学习,不做展示)

1. break;

2. continue

3. goto

无限循环

如果条件永远不会变为假,则循环变为无限循环。该用于循环传统上用于此目的。由于不需要构成'for'循环的三个表达式,因此可以通过将条件表达式留空来创建无限循环。

#include

int main {

for( ; ; ) {

printf("This loop will run forever. ");

}

return 0;}

当条件表达式不存在时,假定为真。您可能有一个初始化和增量表达式,但C程序员更常使用for(;;)构造来表示无限循环。(其他死循环不做讲解,自行补充)

我有一个微信公众号,经常会分享一些C语言/C++技术相关的干货;如果你喜欢我的分享,可以用微信搜索“C语言学习部落”关注,欢迎大家加入千人交流答疑裙:627+012+464

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

冒泡排序

原理: 1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元...

3235
来自专栏贺贺的前端工程师之路

《JavaScript语言精粹》学习笔记

在JavaScript中,/ *可能出现在正则表达式字面量里,所以块注释对于被注释的代码块来说是<u>不安全的</u>。

782
来自专栏带你撸出一手好代码

正则表达式「^」符号的正确理解方式

「^」这个符号在正则表达式的中的应用相信是所有程序员都掌握的, 因为它是正则表达式中最基础最常用的知识点。 它在正则表达式中表示两种不同的意义 01 表示匹配一...

2863
来自专栏企鹅号快讯

Python数据类型之字典

大家好 今天我们来共同探讨 Python的另外一种数据类型 字典 技术要点: 字典的定义 字典的基本使用 字典的特性 对于常规字典的定义 相信大家应该很熟悉 常...

39314
来自专栏AI科技大本营的专栏

10分钟快速入门Python函数式编程

本文,你会了解到什么是函数式编程,以及如何用 Python 进行函数式编程。你还会了解到列表解析和其他形式的解析。

1332
来自专栏liulun

Nim教程【六】

目前看来这是国内第一个关于Nim的系列教程 先说废话 Rust1.0已经发布了, 国内有一个人为这个事情写了一篇非常长的博客, 这篇文章我前几天草草的看了...

2426
来自专栏进击的君君的前端之路

Math对象、数组、日期函数

1615
来自专栏菜鸟前端工程师

JavaScript学习笔记016-字符串方法0数组方法0值类型与引用型

822
来自专栏GreenLeaves

Jquery dom搜索之siblings()方法

      如果给定一个dom的元素集合的算则其对象,siblings()方法允许我们在dom树中搜索这个元素集合的同胞元素,并匹配这些元素构造一个新的对象,J...

2327
来自专栏Java帮帮-微信公众号-技术文章全总结

【Java提高四】接口与抽象类

【Java提高四】接口与抽象类 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是java语言中对抽象概念进行定义的...

3746

扫码关注云+社区

领取腾讯云代金券