是编程的新手,我在C语言中存在一些问题,特别是在检查用户输入的某些条件时使用do-while循环。
我尝试了多种方法在do-while-loop中获得相同的结果。我在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循环 } }同时(值是正数且大于100);
以该值做某事