如果输入不正确,如何返回循环的开头

问题描述 投票:-1回答:2

我正在C中工作

我有do-while循环。其中有一个IF,我需要这样设置:如果用户输入的字符不是'A'或'B'(因此不是其他字母),则程序需要让他再次输入所有内容(基本上回到循环的开始)。

我想是这样的:scanf(“%c”,letter);

如果(字母!='A'&&字母!='B'){...需要的功能}

用于什么功能以及如何使用它?

c scanf
2个回答
0
投票

尝试此

char check = 'y';
while(check == 'y')
{
   printf("Enter some number");
   scanf("%d" , &num);
   printf("Do you want to enter more data? Enter y to conitnue.\n");
   scanf("%c", &check);
}


0
投票

检查Continue语句。

这里是一个实际的例子(使用您自己的corse用户输入逻辑:))

void Main(){

    bool loop = true;
    while(loop){
        char userInput = GetUserInput();
        bool validInput = ValidateUserInput(userInput);
        if(!validInput){
            //start this loop over
            continue;
        }
        //user input was valid. rest of logic here

        break;
    }


}

public char GetUserInput(){

    //some logic ask user for input and return the value they provide
    char userGeneratedInput = 'A';
    return userGeneratedInput;
}

public bool ValidateUserInput(char userInput){
    if(userInput == 'A' || userInput == 'B'){
        return true;
    }
    return false;
}
© www.soinside.com 2019 - 2024. All rights reserved.