我正在尝试做一个简单的do while循环,其中除'y'或'n'之外的任何字母都无效并且循环重复。有谁知道为什么这个循环总是评估为假?即使输入了有效字符?
char user_response[2];
do {
printf("\nDo you want to process another range (y or n): ");
scanf("%1s", user_response);
user_response[0] = tolower(user_response[0]);
}
while (user_response[0] != 'y' || user_response[0] != 'n');
return user_response[0];
答案 0 :(得分:5)
你应该改变||到&&。
答案 1 :(得分:4)
您想使用"&&" (和)代替" ||" (或)。
你在这里有两个测试:"响应不等于y","响应不等于n"。因为反应不能是" y"和" n"同时,至少有一个测试将永远是真实的,并使用"或"你的测试总是评估为真。