Вложенный для цикла запускает только внутренний цикл (c ++) - PullRequest
0 голосов
/ 09 апреля 2019

Я довольно новичок в c ++ и считаю, что ответ на мою проблему очень и очень прост.

Я использую Eclipse IDE, но недавно перешел на простой текстовый редактор и использую командную строку для компиляции. (Поскольку в настоящее время у меня нет собственного компьютера, мне не разрешено устанавливать что-либо на тот, который я использую).

Однако при написании программы я заметил, что всякий раз, когда у меня есть вложенные циклы, он запускает только внутренний цикл.

Я попытался скомпилировать мой код с использованием разных онлайн-компиляторов, что привело к той же проблеме.

Из-за этого я считаю, что проблема связана с чем-то простым, что Eclipse позаботился автоматически.

#include <iostream>

int main() {
  for (int i; i<3; i++) {
    for (int j; j<3; j++) {
      std::cout << j << std::endl;
    }
  }
  return 0;
}

Приведенный выше простейший пример, который я мог бы себе представить, создает проблему. Ожидаемый результат - 0, 1, 2, 0, 1, 2, 0, 1, 2, однако он выводит только 0, 1, 2, когда я компилирую и запускаю его.

Ответы [ 2 ]

5 голосов
/ 09 апреля 2019

Вы не инициализируете переменные i и j значением 0, поэтому переменные начинаются с неопределенных значений. Исправить до:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        std::cout << j << std::endl;
    }
}
0 голосов
/ 09 апреля 2019

Проблема в том, что вы используете неинициализированные переменные, которые оставляют их с неопределенными значениями

for (int i; i < 3; i++) {
         ^

Попробуйте с

for (int i = 0; i < 3; i++) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...