Преобразование for в цикл for для выполнения цикла while

#c #loops #for-loop #do-while

#c #циклы #for-цикл #do-while

Вопрос:

Я пытаюсь преобразовать этот цикл for в цикл do while и сохранить его 7 x 7 в виде матрицы

Для цикла для печати числа 7 x 7 :

 for (int height = 0; height < 7; height  ){
    cout << numberMatrix[height][digitOne] << " ";
    cout << numberMatrix[height][digitTwo] << " ";
    cout << numberMatrix[height][digitThree] << " ";
    cout << endl;
}
  

Правильный вывод:

введите описание изображения здесь

Вот мой код после преобразования, но он не получается правильно.

Для цикла для печати числа 7 x 7 :

  int height = 0;
    while (height < 7) {
        cout << numberMatrix[height][digitOne] << " ";
        cout << numberMatrix[height][digitTwo] << " ";
        cout << numberMatrix[height][digitThree] << " ";
        height  ;
    }
}
  

Неправильный вывод:

введите описание изображения здесь

Комментарии:

1. cout <<endl; вы забыли эту строку в цикле while

2. Пожалуйста, не публикуйте изображение, копируйте / передавайте текстовый вывод

3. два фрагмента кода эквивалентны (за исключением пропущенных cout<<endl в while)

4. Это цикл while. Цикл do while имеет условие в конце и всегда должен выполняться хотя бы один раз. Поэтому он не может легко заменить for, если разрешен пустой или нулевой регистр.

Ответ №1:

В этом случае вам следует использовать цикл while/for . Цикл while следует использовать только тогда, когда вам нужно, чтобы хотя бы один раз цикл был оценен, даже если условие равно false.

Тем не менее, вы можете попробовать это do-while :

 int height = -1;
do{
    if(height > 0){
        cout << numberMatrix[height][digitOne] << " ";
        cout << numberMatrix[height][digitTwo] << " ";
        cout << numberMatrix[height][digitThree] << " ";
        cout << endl;
    }
    height  ;
}while( height < 7);
  

Комментарии:

1. Почему int height = -1; ? На первой итерации ничего не будет напечатано, и вы добавляете лишнее бесполезное if .