Почему цикл do выполняется бесконечно? - PullRequest
0 голосов
/ 03 июля 2018

Почему этот цикл do выполняется бесконечно?

#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) Кто-нибудь может помочь исправить мою ошибку новичка?

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете попробовать while (j == i);.

j = i - это объявление / присваивание переменной, которая всегда будет истинной до тех пор, пока она будет успешной. Кажется, что вы хотите сравнить два, поэтому используйте , равный оператору: ==.

Редактировать: Произошла опечатка и, следовательно, та же ошибка, что показывает ваш вопрос. Исправлено.

...