C/C++零散知识点汇总之for和while循环对比

简介: C/C++零散知识点汇总之for和while循环对比

C/C++零散知识点汇总之for和while循环对比


for循环介绍

for循环的一般形式为:

for (语句1; 语句2; 语句3)
{
    语句块
}

1、for循环开始时,会先止血语句1,而且在整个循环过程中只执行一次语句1。

2、判断表达式的条件,如果条件成立,就止血一次循环体中的语句块。

3、语句块执行完后,结下了会执行语句2。

4、重复第2步和第3步,直到表达式的条件不成立才结束for循环。

注意:

       1、在for循环中,语句1、表达式和语句2都可以为空,for(;;)等同预while(1)。

       2、continue和break两个关键字也可以用在for循环体中。

while循环介绍

while循环的一般形式为:

while (表达式)
{
    语句块
}

先计算表达式的值,当值为真时(非0为真),执行语句块,执行完语句块之后,回到循环收不再次计算表达式的值,如果为真,再次执行语句块......,一直重复这个过程知道表达式不为真,就不再执行语句块。

for(;;)和while(1)的对比

首先要说明的是两者间的效率高低最重要的还是取决于编译器是否会进行优化!当编译器对程序不做优化时,两者的效率高低都差不多,编写时看个人喜好和习惯。当编译器对程序做优化时,for(;;)效率更高一点,有如下原因:

1、两个";"都是空语句,因此编译器对齐进行了优化,直接进入了循环体,而while(1)相当于是一个表达式,每循环一次,程序都需要判断一次进入的常量是否为0,因此相当来说for循环的死循环比较高效一点。

2、for(;;)相当于是7个字符,而while(1)是8个字符,因此for的死循环效率更高一点。

循环的选择

1、从应用场景来看,for循环通常用于已知循环次数,而while循环通常适用于未知循环次数。

2、从内存角度来看,局部变量在栈内存中存在,当for循环结束,那面变量会及时被gc(垃圾回收器)及时释放掉,不浪费空间。若使用循环之后还想去访问循环语句中控制那个变量,用while循环。

注意:

1、在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。

2、尽量把循环嵌套控制在三层以内。

3、for语句的控制表达式不能包含任何浮点型的对象。

相关文章
|
7月前
|
存储 网络协议 编译器
【干货总结】Linux C/C++面试知识点
Linux C/C++基础与进阶知识点,不仅用于面试,平时开发也用得上!
637 16
|
6月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
7月前
|
算法 程序员 编译器
C++的四类循环分享
C++的四类循环:Entry or Exit controlled, Ranged-based or For_each
|
7月前
|
C++
C++一分钟之-循环结构:for与while循环
【6月更文挑战第18天】在C++中,`for`循环适合已知迭代次数,如数组遍历;`while`循环适用于条件驱动的未知次数循环。`for`以其初始化、条件和递增三部分结构简洁处理重复任务,而`while`则在需要先检查条件时更为灵活。常见错误包括无限循环和逻辑错误,解决办法是确保条件更新和正确判断。了解两者应用场景及陷阱,能提升代码效率和可读性。
73 6
|
7月前
|
C语言 C++ 容器
c++primer plus 6 读书笔记 第五章 循环和关系表达式
c++primer plus 6 读书笔记 第五章 循环和关系表达式
|
7月前
|
程序员 编译器 C++
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
探索C++语言宝库:解锁基础知识与实用技能(类型变量+条件循环+函数模块+OOP+异常处理)
55 0
|
8月前
|
算法 程序员 C++
C++程序中的循环语句:实现重复执行的关键
C++程序中的循环语句:实现重复执行的关键
436 2
|
7月前
|
C++
C++继承的相关知识点
C++继承的相关知识点
36 0
|
8月前
|
算法 C++
c++循环
c++循环
41 0
|
8月前
|
C++
C++ 循环
C++ 循环
48 0