# C++ 循环
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
编程语言提供了允许更为复杂的执行路径的多种控制结构。
循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式:
![循环结构](https://box.kancloud.cn/2015-12-13_566d2e1c92ed1.jpg)
### 循环类型
C++ 编程语言提供了以下几种循环类型。点击链接查看每个类型的细节。
| 循环类型 | 描述 |
|-----|-----|
| [while 循环](# "C++ 中的 while 循环") | 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 |
| [for 循环](# "C++ 中的 for 循环") | 多次执行一个语句序列,简化管理循环变量的代码。 |
| [do...while 循环](# "C++ 中的 do...while 循环") | 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 |
| [嵌套循环](# "C++ 中的嵌套循环") | 您可以在 while、for 或 do..while 循环内使用一个或多个循环。 |
### 循环控制语句
循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。
C++ 提供了下列的控制语句。点击链接查看每个语句的细节。
| 控制语句 | 描述 |
|-----|-----|
| [break 语句](# "C++ 中的 break 语句") | 终止 **loop** 或 **switch** 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。 |
| [continue 语句](# "C++ 中的 continue 语句") | 引起循环跳过主体的剩余部分,立即重新开始测试条件。 |
| [goto 语句](# "C++ 中的 goto 语句") | 将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。 |
### 无限循环
如果条件永远不为假,则循环将变成无限循环。**for** 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。
~~~
#include <iostream>
using namespace std;
int main ()
{
for( ; ; )
{
printf("This loop will run forever.\n");
}
return 0;
}
~~~
当条件表达式不存在时,它被假设为真。您也可以设置一个初始值和增量表达式,但是一般情况下,C++ 程序员偏向于使用 for(;;) 结构来表示一个无限循环。
**注意:**您可以按 Ctrl + C 键终止一个无限循环。
- C++ 入门
- C++ 简介
- C++ 环境设置
- C++ 基本语法
- C++ 注释
- C++ 数据类型
- C++ 变量类型
- C++ 变量作用域
- C++ 常量
- C++ 修饰符类型
- C++ 存储类
- C++ 运算符
- C++ 循环
- C++ while 循环
- C++ for 循环
- C++ do...while 循环
- C++ 嵌套循环
- C++ break 语句
- C++ continue 语句
- C++ goto 语句
- C++ 判断
- C++ if 语句
- C++ if...else 语句
- C++ 嵌套 if 语句
- C++ switch 语句
- C++ 嵌套 switch 语句
- C++ 函数
- C++ 数字
- C++ 数组
- C++ 多维数组
- C++ 指向数组的指针
- C++ 传递数组给函数
- C++ 从函数返回数组
- C++ 字符串
- C++ 指针
- C++ Null 指针
- C++ 指针的算术运算
- C++ 指针 vs 数组
- C++ 指针数组
- C++ 指向指针的指针(多级间接寻址)
- C++ 传递指针给函数
- C++ 从函数返回指针
- C++ 引用
- C++ 把引用作为参数
- C++ 把引用作为返回值
- C++ 日期 & 时间
- C++ 基本的输入输出
- C++ 数据结构
- C++ 面向对象
- C++ 类 & 对象
- 类 & 对象详解
- C++ 类成员函数
- C++ 类访问修饰符
- C++ 类构造函数 & 析构函数
- C++ 拷贝构造函数
- C++ 友元函数
- C++ 内联函数
- C++ this 指针
- C++ 指向类的指针
- C++ 类的静态成员
- C++ 继承
- C++ 重载运算符和重载函数
- C++ 一元运算符重载
- C++ 二元运算符重载
- C++ 关系运算符重载
- C++ 输入/输出运算符重载
- C++ ++ 和 -- 运算符重载
- C++ 赋值运算符重载
- C++ 函数调用运算符 重载
- C++ 下标运算符 重载
- C++ 类成员访问运算符 -> 重载
- C++ 多态
- C++ 数据抽象
- C++ 数据封装
- C++ 接口(抽象类)
- C++ 高级
- C++ 文件和流
- C++ 异常处理
- C++ 动态内存
- C++ 命名空间
- C++ 模板
- C++ 预处理器
- C++ 信号处理
- C++ 多线程
- C++ Web 编程
- C++ 资源库
- C++ STL 教程
- C++ 标准库
- C++ 有用的资源