【问题标题】:How to break a counter loop in c++ when output reaches a certain value当输出达到某个值时如何在c ++中打破计数器循环
【发布时间】:2017-08-13 20:50:02
【问题描述】:

我这里有几行代码,它们基本上接受一个输入,然后从 0 到那个输入计数 2 秒。我坚持的是,一旦输出满足原始输入,就试图停止循环。例如,用户输入 4,输出为 0 2 4。用户输入 10,输出为 0 2 4 6 8 10。

当我尝试使用 if 语句来中断代码时,输​​出只是变为 0

对不起。我是 C++ 的新手

int main() {
    int x; 
    int y;
    cout << "Enter a value: " << endl;
    while (x >= 0) {
        cout << x << " ";
        y = (x += 2);
        if (y == x)break;
    }
}

【问题讨论】:

  • 我认为y 在遇到if 语句时总是等于x,因为它总是将x 的值分配给紧接其上方的行中的y。所以它总是会在第一次通过循环时退出。
  • 想一想,提示用户输入的内容在哪里?
  • 您的代码具有未定义的行为,因为 xy 未初始化。
  • @user0042:读取输入的实际std::cin 语句也丢失了。我怀疑这不是巧合。

标签: c++ counter


【解决方案1】:

y == x 在该条件下始终为真(不考虑 UB 代表未初始化的变量),因为您在上面的语句中将 x 分配给 y

改用for 循环,它非常适合:

for(int i = 0; i <= your_input; i += 2)
{
    std::cout << i << " ";
}

代码中的缺陷:

  • 您正在更改这两个变量
  • 其中一个未初始化为0,您不会将用户的输入输入另一个
  • x &gt;= 0 对于循环来说是毫无意义的条件

【讨论】:

  • 谢谢! for 语句(并提醒我使用 cin)实际上帮助了很多人。我得到了我想要的输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
  • 2021-08-16
  • 2016-02-24
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多