gpt4 book ai didi

while 循环中的 c++ 声明和初始化变量

转载 作者:行者123 更新时间:2023-11-30 01:40:51 25 4
gpt4 key购买 nike

在下面的代码中:

#include <iostream>

using namespace std;

int main()
{
int num = 0;

while (num >= 0 && num <= 3)
{
int inner_loop_count = 0;
cout << "Loop # " << ++inner_loop_count << "\n";
num++;
}
}

输出是:

Loop # 1
Loop # 1
Loop # 1
Loop # 1

我的理解是循环范围在大括号{}之间,不能用来定义循环计数器,因为每次都会重做声明和初始化。

我尝试了以下解决方案:

  1. 使用静态关键字。 (无论好坏)。
  2. 将 while 本身包含在外部 {} 中,并在 while 之前声明计数器变量。

问题 #1:我的理解是否正确?
问题 #2:是否有任何其他技术上可行的解决方案?

谢谢

最佳答案

您实际上无法在循环体内定义循环计数器。正如您提到的,static 可以在给定的上下文中在技术上起作用。但是,如果第二次进入循环,则计数器不会从 0 开始。

因此,请改用 for 循环。

这就是它的“目的”:

for( int num = 0; num <= 3; ++num )
{
// ...
}

它由放置在 int num = 0 声明所在的大括号 block 中的 while 循环等价定义。

更新 ++num 被放置在等效循环体的底部,像这样:

// Equivalent:
{
int num = 0;
while( num <= 3 )
{
// ...
++num;
}
}

...您可以避免使用 for 编写。

关于while 循环中的 c++ 声明和初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42534977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com