做验证,提示用户输入,如果有效,处理

时间:2019-04-11 17:40:31

标签: final-form

是编程的新手,我在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);

以该值做某事

0 个答案:

没有答案