我正在用 for 循环体中的 std::cin
创建一个简单的程序。
#include <iostream>
int main()
{
float a = 0;
for (std::cin >> a; a >= 0;std::cin >> a) {
std::cout << "\t "<<a<<"\n";
}
return 0;
}
此程序在 a
中获取值并打印它,直到您输入一个负数。
但是,当我将 for
循环定义修改为 for(std::cin >> a; a >= 0;)
时,它只会永远打印第一个数字。我想知道为什么会这样。是不是循环增量部分缺失?
最佳答案
我认为没有什么好奇怪的;省略 for 循环的“第三”部分意味着 - 除了循环体 - 每次迭代后不会执行任何内容;因此,一旦通过为 a >= 0
提供值进入循环, 只要你不改变 a
的值在循环体中(std::cout << "\t "<<a<<"\n"
不会改变 a
),循环将“永远”运行,始终打印 a
的初始值。
关于c++ - 在 for 循环定义中使用 cin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753771/