本文概述
当我们需要重复执行一个语句块时, 就会使用编程中的循环。例如:假设我们要打印10次" Hello World"。可以通过以下两种方式完成此操作:
迭代法
执行此操作的一种迭代方法是将printf()语句写入10次。
C
// C program to illustrate need of loops
#include <stdio.h>
int main()
{
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
printf ( "Hello World\n" );
return 0;
}
C ++
// C++ program to illustrate need of loops
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
cout << "Hello World\n" ;
return 0;
}
输出如下:
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
使用循环
在循环中, 该语句仅需写入一次, 循环将执行10次, 如下所示。
在计算机编程中, 循环是重复执行的指令序列, 直到达到特定条件为止。
- 完成一项操作, 例如获取一项数据并进行更改, 然后检查某种条件, 例如计数器是否已达到规定数量。
- 计数器未达到:如果计数器尚未达到所需的数目, 则序列中的下一条指令将返回序列中的第一条指令并重复执行。
- 到达计数器:如果已达到条件, 则下一条指令"落入"到下一条顺序指令, 或在循环外跳转。
主要有两种类型的循环:
- 入口控制循环:在这种类型的回路中, 在进入回路体之前要测试测试条件。对于循环和While循环是入口控制的循环。
- 退出控制循环:在这种类型的循环中, 在循环体末端测试或评估测试条件。因此, 无论测试条件为真还是假, 循环体都会至少执行一次。做– while循环是退出控制的循环。
循环
for循环是一种重复控制结构, 它使我们可以编写执行特定次数的循环。该循环使我们可以在一行中一起执行n个步骤。
语法如下:
for (initialization expr; test expr; update expr)
{
// body of the loop
// statements we want to execute
}
在for循环中, 使用循环变量来控制循环。首先将此循环变量初始化为某个值, 然后检查此变量是否小于或大于计数器值。如果statement为true, 则执行循环主体, 并更新循环变量。重复步骤直到退出条件出现。
- 初始化表达式:在此表达式中, 我们必须将循环计数器初始化为某个值。例如:int i = 1;
- 测试表达:在此表达式中, 我们必须测试条件。如果条件的计算结果为true, 则我们将执行循环的主体并更新表达式, 否则将退出for循环。例如:i <= 10;
- 更新表达:执行循环体后, 此表达式将循环变量增加/减少一些值。例如:i ++;
循环的等效流程图:
例子:
C
// C program to illustrate for loop
#include <stdio.h>
int main()
{
int i=0;
for (i = 1; i <= 10; i++)
{
printf ( "Hello World\n" );
}
return 0;
}
C ++
// C++ program to illustrate for loop
#include <iostream>
using namespace std;
int main()
{
for ( int i = 1; i <= 10; i++)
{
cout << "Hello World\n" ;
}
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
// C program to illustrate while loop
#include <stdio.h>
int main()
{
// initialization expression
int i = 1;
// test expression
while (i < 6)
{
printf ( "Hello World\n" );
// update expression
i++;
}
return 0;
}
C ++
// 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 World\n" ;
// update expression
i++;
}
return 0;
}
输出如下:
Hello World
Hello World
Hello World
Hello World
Hello World
做while循环
在do while循环中, 循环执行也会根据测试条件终止。 do while循环和while循环之间的主要区别是在while循环中执行条件的条件是在循环主体的末尾进行测试, 即do while循环是退出控制的, 而其他两个循环是入口控制的循环。
注意
:在do while循环中, 无论测试条件如何, 循环主体都将至少执行一次。
语法:
initialization expression;
do
{
// statements
update_expression;
} while (test_expression);
注意:注意循环末尾的半冒号(";")。
流程图
:
例子:
C
// C program to illustrate do-while loop
#include <stdio.h>
int main()
{
int i = 2; // Initialization expression
do
{
// loop body
printf ( "Hello World\n" );
// update expression
i++;
} while (i < 1); // test expression
return 0;
}
C ++
// C++ program to illustrate do-while loop
#include <iostream>
using namespace std;
int main()
{
int i = 2; // Initialization expression
do
{
// loop body
cout << "Hello World\n" ;
// update expression
i++;
} while (i < 1); // test expression
return 0;
}
输出如下:
Hello World
在上面的程序中, 测试条件(i <1)评估为false。但是仍然在循环退出时-受控的循环主体将执行一次。
无限循环呢?
无限循环(有时称为无穷循环)是一段缺少功能性退出的编码, 因此它可以无限期地重复。当条件始终为真时, 将发生无限循环。通常, 这是一个错误。
C
// C program to demonstrate infinite loops
// using for and while
// Uncomment the sections to see the output
#include <stdio.h>
int main ()
{
int i;
// This is an infinite for loop as the condition
// expression is blank
for ( ; ; )
{
printf ( "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-- ;
printf( "This loop will run forever.\n");
}
*/
// This is an infinite for loop as the condition
// given in while loop is "true"
/*
while (true)
{
printf( "This loop will run forever.\n");
}
*/
}
C ++
// 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.
...................
被认为是行业中最受欢迎的技能之一, 我们拥有自己的编码基础C ++ STL通过激烈的问题解决过程来训练和掌握这些概念。