Я новичок в программировании, и у меня есть некоторые проблемы в C, в частности, чтобы использовать цикл do-while при проверке некоторых условий на ввод пользователя.
Я пробовал несколько способов достижения одинаковых результатов в цикле do-while. Я пробовал while
цикл внутри do {}while
цикла, а также if-else
внутри do{}while
цикла.
Проблемы, с которыми я сталкиваюсь, состоят в том, что моя программа выполняется, даже если пользовательский ввод выходит за пределы диапазона или продолжает повторять цикл while без пересылки проверенного ввода. Я запутался и не знаю, что я делаю. Любая помощь, кто-нибудь?
Я видел похожие проблемы на этом форуме с некоторым предложением просто использовать цикл «делать во время», но это не помогает без практического подхода.
Вот мой код: этот код выполняется даже при вводе 1
int main(void)
{
// Variable declaration
int nrow =100;
do{
//prompt user for input
printf(" Enter size between 100 and 150: \n");
scanf("%d", &nrow);
// here we validate user input if its more than 100
if( nrow >= 150){
printf(" Too large! Try between 100 and 150: \n");
scanf("%d", &nrow);
printf("\n");
}
// here we validate user input if its less than 100
if( nrow <= 100 ){
printf(" Too small! between 100 and 150: \n");
scanf("%d", &nrow);
printf("\n");
}
// here we validate user input if it is positive #
else if ( nrow %2 != 0){
printf(" Not Exactly.. Positive please! : \n");
scanf("%d", &nrow);
printf("\n");
} else {
return nrow;
}
}while(nrow/2 >= 0 );
// some more code here using nrow parameters
Я ожидал
сделать {
while (неверный пользователь imput) {
предложить пользователю повторить попытку, пока не будут введены приемлемые значения
}
if (ввод пользователя действителен)
{
вперед, если в то время как цикл
}
} while (значение положительное и больше 100);
сделать что-то с этим значением