吾爱程序员:这里有好玩的游戏和软件
当前位置:首页C++教程 → C++ 中的循环

C++ 中的循环

来源:网络 | 更新时间:2022-02-13 09:37:05
当我们需要重复执行一个语句块时,就会使用编程中的循环。例如:假设我们要打印 10 次“Hello World”。这可以通过两种方式完成,如下所示:

迭代法

执行此操作的一种迭代方法是编写 printf() 语句 10 次。
// C++ program to illustrate need of loops 
#include <iostream> 
using namespace std; 

int main() 
{ 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
cout << "Hello Worldn"; 
return 0; 
} 
输出:
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World

使用循环

在Loop中,语句只需要编写一次,循环将执行10次,如下所示。 在计算机编程中,循环是重复的指令序列,直到达到特定条件。
  • 完成一项操作,例如获取一项数据并对其进行更改,然后检查某些条件,例如计数器是否达到规定的数量。
  • 计数器未达到:如果计数器未达到所需数量,则序列中的下一条指令返回到序列中的第一条指令并重复执行。
  • 计数器到达:如果条件已经达到,下一条指令“落入”到下一条顺序指令或分支到循环外。
主要有两种类型的循环:
  1. 入口控制循环:在这种类型的循环中,测试条件在进入循环体之前进行测试。For 循环While 循环是入口控制循环。
  2. 退出控制循环:在这种类型的循环中,测试条件在循环体的末尾进行测试或评估。因此,循环体将至少执行一次,而不管测试条件是真还是假。do - while 循环是退出控制循环。
循环 for 循环是一种重复控制结构,它允许我们编写一个执行特定次数的循环。该循环使我们能够在一行中一起执行 n 个步骤。 语法:
for (initialization expr; test expr; update expr)
{ 
// body of the loop
// statements we want to execute
}
在 for 循环中,使用循环变量来控制循环。首先将此循环变量初始化为某个值,然后检查此变量是否小于或大于计数器值。如果语句为真,则执行循环体并更新循环变量。重复步骤直到退出条件出现。
  • 初始化表达式:在这个表达式中,我们必须将循环计数器初始化为某个值。例如:int i=1;
  • 测试表达式:在这个表达式中,我们必须测试条件。如果条件评估为真,那么我们将执行循环体并转到更新表达式,否则我们将退出 for 循环。例如:i <= 10;
  • 更新表达式:执行循环体后,此表达式将循环变量递增/递减某个值。例如:i++;
循环的等效流程图: 例子:
// C++ program to illustrate for loop 
#include <iostream> 
using namespace std; 

int main() 
{ 
for (int i = 1; i <= 10; i++) 
{ 
cout << "Hello Worldn"; 
} 

return 0; 
} 
输出:
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World

While 循环

在研究for 循环时,我们已经看到迭代次数是事先知道的,即循环体需要执行的次数是我们已知的。while 循环用于我们事先不知道循环的确切迭代次数的情况。根据测试条件终止循环执行。 语法 我们已经说过,一个循环主要由三个语句组成——初始化表达式、测试表达式、更新表达式。三个循环的语法——for、while 和 do while 主要在这三个语句的位置上有所不同。
initialization expression;
while (test_expression)
{
// statements

update_expression;
}
流程图 例子:
// C++ program to illustrate while loop 
#include <iostream> 
using namespace std; 

int main() 
{ 
// initialization expression 
int i = 1; 

// test expression 
while (i < 6) 
{ 
cout << "Hello Worldn"; 

// update expression 
i++; 
} 

return 0; 
} 
输出:
Hello World
Hello World
Hello World
Hello World
Hello World

do while循环

在 do while 循环中,循环执行也会根据测试条件终止。do while 循环和while 循环的主要区别在于do while 循环中的条件在循环体的末尾进行测试,即do while 循环是退出控制的,而其他两个循环是入口控制的循环。 注意:在 do while 循环中,无论测试条件如何,循环体都将至少执行一次。 语法
initialization expression;
do
{
// statements
update_expression;
} while (test_expression);
注意:注意循环末尾的半冒号(“;”)。 流程图 例子:
// C++ program to illustrate do-while loop 
#include <iostream> 
using namespace std; 

int main() 
{ 
int i = 2; // Initialization expression 

do
{ 
// loop body 
cout << "Hello Worldn"; 

// update expression 
i++; 

} while (i < 1); // test expression 

return 0; 
} 
输出:
Hello World
在上述程序中,测试条件 (i<1) 评估为假。但是当循环退出时——控制循环体将执行一次。 那么无限循环呢? 无限循环(有时称为无限循环)是一段缺少功能出口的代码,因此它会无限重复。当条件总是计算为真时,就会发生无限循环。通常,这是一个错误。
// C++ program to demonstrate infinite loops 
// using for and while 
// Uncomment the sections to see the output 

#include <iostream> 
using namespace std; 
int main () 
{ 
int i; 

// This is an infinite for loop as the condition 
// expression is blank 
for ( ; ; ) 
{ 
cout << "This loop will run forever.n"; 
} 

// This is an infinite for loop as the condition 
// given in while loop will keep repeating infinitely 
/* 
while (i != 0) 
{ 
i-- ; 
cout << "This loop will run forever.n"; 
} 
*/

// This is an infinite for loop as the condition 
// given in while loop is "true" 
/* 
while (true) 
{ 
cout << "This loop will run forever.n"; 
} 
*/
} 
输出:
This loop will run forever.
This loop will run forever.
...................
要点:
  • 当预先知道迭代次数时使用for循环,即需要执行循环体的次数是已知的。
  • 在不知道确切的迭代次数但知道循环终止条件的情况下使用 while 循环。
  • 如果代码需要像在菜单驱动程序中一样至少执行一次,请使用 do while 循环

最新文章

热点资讯

手游排行榜

CopyRight 2020-2030吾爱程序员

鄂ICP备2021004581号-8

本站资源收集于网络,如有侵权请联系我们:35492删除0109@qq.com