#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;
вы забыли эту строку в цикле while2. Пожалуйста, не публикуйте изображение, копируйте / передавайте текстовый вывод
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
.