char比较总是假的c

时间:2013-11-05 03:16:28

标签: c char do-while

我正在尝试做一个简单的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];

2 个答案:

答案 0 :(得分:5)

你应该改变||到&&。

答案 1 :(得分:4)

您想使用"&&" (和)代替" ||" (或)。

你在这里有两个测试:"响应不等于y","响应不等于n"。因为反应不能是" y"和" n"同时,至少有一个测试将永远是真实的,并使用"或"你的测试总是评估为真。