C和C++中的循环语句详细指南和代码示例

2021年3月11日16:49:40 发表评论 840 次浏览

本文概述

当我们需要重复执行一个语句块时, 就会使用编程中的循环。例如:假设我们要打印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次, 如下所示。

在计算机编程中, 循环是重复执行的指令序列, 直到达到特定条件为止。

  • 完成一项操作, 例如获取一项数据并进行更改, 然后检查某种条件, 例如计数器是否已达到规定数量。
  • 计数器未达到:如果计数器尚未达到所需的数目, 则序列中的下一条指令将返回序列中的第一条指令并重复执行。
  • 到达计数器:如果已达到条件, 则下一条指令"落入"到下一条顺序指令, 或在循环外跳转。

主要有两种类型的循环:

  1. 入口控制循环:在这种类型的回路中, 在进入回路体之前要测试测试条件。对于循环和While循环是入口控制的循环。
  2. 退出控制循环:在这种类型的循环中, 在循环体末端测试或评估测试条件。因此, 无论测试条件为真还是假, 循环体都会至少执行一次。做– while循环是退出控制的循环。
C和C ++中的循环1

循环

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 ++中的循环2

例子:

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 ++中的循环3

例子:

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 ++中的循环4

例子:

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通过激烈的问题解决过程来训练和掌握这些概念。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: