C++入门基础知识[3]——循环嵌套循环无限循环

Posted 脑壳二

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++入门基础知识[3]——循环嵌套循环无限循环相关的知识,希望对你有一定的参考价值。

C++入门基础知识[3]——循环、嵌套循环、无限循环

原创不易,路过的各位大佬请点个赞

5、循环语句

5.1 循环类型

C++ 编程语言提供了以下几种循环类型。点击链接查看每个类型的细节。

循环类型描述
while 循环当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
for 循环多次执行一个语句序列,简化管理循环变量的代码。
do…while 循环除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
嵌套循环您可以在 while、for 或 do…while 循环内使用一个或多个循环。

5.2 while循环

while循环的格式十分简单:

do{
    循环体
}while(循环条件);

它先执行循环体,再检查是否符合循环条件,所以它通常用于将循环至少一次的循环。

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 1;

   // while 循环执行
   while( a < 10 )
   {
       cout << "a 的值:" << a << endl;
       a++;
   }
 
   return 0;
}

5.3 for循环

for循环的格式如下:

for(初始语句;循环条件;一次循环结束时执行的语句){
    循环体
}

在小括号内的三项都可以省略,如果全部省略( 形如 for(;😉 ),那就是一个死循环。

举例:
进行循环n次的功能,如:

for(int i=0;i<n;++i){
    // 循环体
}

for循环通常用来实现循环次数固定的循环(或循环变量在循环体中不改变的循环)。

举例:

#include <iostream>
using namespace std;
 
int main ()
{
   // for 循环执行
   for( int a = 10; a < 20; a = a + 1 )
   {
       cout << "a 的值:" << a << endl;
   }
 
   return 0;
}

5.4 do…while循环

do-while的循环与while循环十分相似:

do{
    循环体
}while(循环条件);

它先执行循环体,再检查是否符合循环条件,所以它通常用于将循环至少一次的循环。

举例:

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   do
   {
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

5.5 三个循环关系

for循环可以改成while循环:

for(语句1;表达式;语句2){
    循环体;
}

可以改成

{
    语句1;
    while(表达式){
        循环体;
        语句2;
    }
}

6、嵌套循环

其实就是一个循环嵌套另一个循环,只不过要注意循环变量名必须不同。(否则虽然不会报错,但是会出大问题:内层循环的变量覆盖了外层循环的变量)

6.1 嵌套 for 循环

C++ 中 嵌套 for 循环 语句的语法:

for ( init; condition; increment )
{
   for ( init; condition; increment )
   {
      statement(s);
   }
   statement(s); // 可以放置更多的语句
}

6.2 嵌套 while 循环

嵌套 while 循环 语句的语法:

while(condition)
{
   while(condition)
   {
      statement(s);
   }
   statement(s); // 可以放置更多的语句
}

6.3 嵌套 do…while 循环 语句的语法:

嵌套 do…while 循环 语句的语法:

do
{
   statement(s); // 可以放置更多的语句
   do
   {
      statement(s);
   }while( condition );

}while( condition );

关于嵌套循环有一点值得注意,您可以在任何类型的循环内嵌套其他任何类型的循环。比如,一个 for 循环可以嵌套在一个 while 循环内,反之亦然。

实例

#include <iostream>
using namespace std;
int main ()
{
   /* 局部变量定义 */
   int i, j;
   for(i=1; i<=5; i++) {
      for(j=1; j <= 5; j++)
        cou<<i<<,<<j<<endl;
   }
 
   return 0;
}

7、无限循环

如果条件永远不为假,则循环将变成无限循环。for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。

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

   for( ; ; )
   {
      printf("This loop will run forever.\\n");
   }

   return 0;
}

当条件表达式不存在时,它被假设为真。您也可以设置一个初始值和增量表达式,但是一般情况下,C++ 程序员偏向于使用 for(;😉 结构来表示一个无限循环。

注意:您可以按 Ctrl + C 键终止一个无限循环。

8、循环控制语句

循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。

8.1 循环控制语句类型

|

控制语句描述
break 语句终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。
continue 语句引起循环跳过主体的剩余部分,立即重新开始测试条件。
goto 语句将控制转移到被标记的语句。但是不建议在程序中使用 goto 语句。

8.2 break控制语句

break 语句有以下两种用法:
1、当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
2、它可用于终止 switch 语句中的一个 case。

如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

break 语句的语法:

break;

实例

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   do
   {
       cout << "a 的值:" << a << endl;
       a = a + 1;
       if( a > 15)
       {
          // 终止循环
          break;
       }
   }while( a < 20 );
 
   return 0;
}

8.2 continue控制语句

continue 语句有点像 break 语句。但它不是强迫终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。

对于 for 循环,continue 语句会导致执行条件测试和循环增量部分。对于 while 和 do…while 循环,continue 语句会导致程序控制回到条件测试上。

continue 语句的语法:

continue;

实例
在这里插入图片描述

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   do
   {
       if( a == 15)
       {
          // 跳过迭代
          a = a + 1;
          continue;
       }
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

8.3 goto 控制语句

goto 语句允许把控制无条件转移到同一函数内的被标记的语句。

**注意:**在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。

goto 语句的语法:

goto label;
..
.
label: statement;

在这里,label 是识别被标记语句的标识符,可以是任何除 C++ 关键字以外的纯文本。标记语句可以是任何语句,放置在标识符和冒号(:)后边。

实例
在这里插入图片描述

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   LOOP:do
   {
       if( a == 15)
       {
          // 跳过迭代
          a = a + 1;
          goto LOOP;
       }
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

参考文章: 《C++ 数据类型 》https://www.w3cschool.cn/cpp/cpp-goto-statement.html
《C++基本语法详解》http://c.biancheng.net/view/1305.html

原创不易,路过的各位大佬请点个赞

以上是关于C++入门基础知识[3]——循环嵌套循环无限循环的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的代码在执行时的初始嵌套 for 循环中进入无限循环?

无限循环与嵌套循环

for语句,嵌套循环

C++入门基础知识[4]——循环控制语句

Python3入门基础(05)循环语句

Python3入门基础(05)循环语句