所以我尝试做一个do-while循环,在用户输入K或M字符时结束。
char conversionChoice;
do {
printf("Enter K to convert from Kilometer to Miles\n"
"Enter M to convert from Miles to Kilometer\n");
scanf(" %c",&conversionChoice);
}while (conversionChoice != "K" || conversionChoice != 'M');
发生的情况是循环继续运行,如果我输入KM,那么在请求输入之前,它将重复printf两次。我是个C新手,不知道我在比较字符时做错了什么
发布于 2020-10-03 06:20:20
||
代表OR
operator。让我们举个例子,如果你给'K‘作为输入,OR操作符将决定conversionChoice != "K"
等于true,而conversionChoice != 'M'
等于false。
在这种情况下,OR
运算符将返回true,因为其中一个表达式为true。
所以你应该使用代表AND
运算符的&&
。
do {....}
while (conversionChoice != "K" && conversionChoice != 'M');
https://stackoverflow.com/questions/64178653
复制相似问题