0

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

2 回答 2

4

你应该改变|| 至 &&。

于 2013-11-05T03:17:42.217 回答
4

您想使用“&&”(和)而不是“||” (或者)。

您在这里有两个测试:“响应不等于 y”、“响应不等于 n”。由于响应不能同时为“y”和“n”,因此至少有一个测试将始终为真,并且通过使用“或”,您的 while 测试将始终评估为真。

于 2013-11-05T03:20:24.783 回答