首页 > 解决方案 > 为什么这个do while循环无限执行?

问题描述

为什么这个do while循环无限执行?

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
unsigned int base;
cout << "Base: ";
cin >> base;
for (int i = 1; i <= base; i++) {
    int j = 0;
    do {
        cout << "#";
        j++;
    } while (j = i);
    cout << endl;
};
system("pause");
// keep on building up until you reach 'base'
return 0;
}

我真的很困惑。这个程序应该创建一个像这样的三角形

#
##
###

(用户输入底部数字,所以在这个例子中基数 = 3)有人帮助解决我的菜鸟错误吗?

标签: c++loopsinfinite-loopdo-while

解决方案


你可能想试试while (j == i);

j = i是一个变量声明/赋值,只要它成功,它就永远为真。似乎您想比较两者,所以使用等于运算符: ==

编辑:打错了,因此与您的问题显示的错误相同。解决了这个问题。


推荐阅读