我有一个非常大的if语句,它看起来不讨人喜欢,也没有尽可能的高效。
我正在制作一个程序(取决于用户的输入)运行一个特定的代码块,例如,如果用户输入'a'
程序运行一个向文件添加内容的代码等等。顺便说一下,这是一个do-while语句(我不知道这是否相关)。
else if(ansr != 'a' && ansr != 'A' && ansr != 'r' && ansr != 'R' && ansr != 's' && ansr != 'S' && ansr != 'e' && ansr != 'E')
{
printf("Invalid input!\n");
}
如你所见,这是一个很长的if语句,我希望它更短。谢谢你
最佳答案
嗯,不管怎样,这都是个好例子。
为什么不使用strchr
?strchr
返回指向字符串中某个字符的指针(如果找到),否则为空。
else if (strchr("aArRsSeE", ansr) == NULL)
{
printf("Invalid input!\n");
}