为什么此代码片段在 C++11 中无限打印 10?
Why does this code snippet print 10 infinitely in c++11?
为什么以下 C++ 代码片段会无限期地打印 10?
int num = 10;
while (num >= 1)
cout << num << " ";
num--;
如果您想在 C++ 中使用 while 循环,则必须将内部代码包含在 {}
之间,如下所示:
while(/* Condition */){
// Do something
}
当使用大括号时,您的代码片段与此等效:
int num = 10;
while (num >= 1)
{
cout << num << " ";
}
num--;
意味着只有打印语句是循环的一部分。你要的是这个:
int num = 10;
while (num >= 1)
{
cout << num << " ";
num--;
}
您可能熟悉 python,尽管在 C++ 中作用域与缩进无关。
如果缩进正确,它将如下所示:
int num = 10;
while (num >= 1)
cout << num << " ";
num--;
我真的会在这里推荐一个像 clang-format 这样的格式化工具,因为它会立即给你这个反馈。
C++ 中的作用域是使用 {} 完成的。
因此,代码应该是:
int num = 10;
while (num >= 1)
{
cout << num << " ";
num--;
}
如果您不指定 {},则只有下一条语句是范围的一部分。
在这种情况下,我猜你正在尝试学习 while 循环。尽管此代码更适合 for 循环。
int num = 10;
for (int num = 10; num >= 1; num--)
cout << num << " ";
为什么以下 C++ 代码片段会无限期地打印 10?
int num = 10;
while (num >= 1)
cout << num << " ";
num--;
如果您想在 C++ 中使用 while 循环,则必须将内部代码包含在 {}
之间,如下所示:
while(/* Condition */){
// Do something
}
当使用大括号时,您的代码片段与此等效:
int num = 10;
while (num >= 1)
{
cout << num << " ";
}
num--;
意味着只有打印语句是循环的一部分。你要的是这个:
int num = 10;
while (num >= 1)
{
cout << num << " ";
num--;
}
您可能熟悉 python,尽管在 C++ 中作用域与缩进无关。
如果缩进正确,它将如下所示:
int num = 10;
while (num >= 1)
cout << num << " ";
num--;
我真的会在这里推荐一个像 clang-format 这样的格式化工具,因为它会立即给你这个反馈。
C++ 中的作用域是使用 {} 完成的。 因此,代码应该是:
int num = 10;
while (num >= 1)
{
cout << num << " ";
num--;
}
如果您不指定 {},则只有下一条语句是范围的一部分。
在这种情况下,我猜你正在尝试学习 while 循环。尽管此代码更适合 for 循环。
int num = 10;
for (int num = 10; num >= 1; num--)
cout << num << " ";