C Do循环误解条件

问题描述 投票:0回答:1

我正在尝试在c中运行do循环,但条件似乎是相反的。这是我的代码:

#import <cs50.h>
#import <stdio.h>

int main()
{
    int n;
    do
    {
        n = get_int("Number: ");
    }
    while ((n < 23)&&(n >= 0));
    printf("%i\n", n);
}

如果我输入52,它应该重新提示我,但它会打印出来。如果我将第一个条件的运算符切换到>,它会重新提示我。然后我将第二个条件的运算符切换到>=,并打印出任何数字。我可能误解了操作员,但我看上网了,他们似乎是正确的。

c cs50
1个回答
3
投票

do { /* ... */ } while ((n < 23)&&(n >= 0));这意味着在n < 23n >= 0这个区块做点什么。

如果我输入52,它应该重新提示我,但它会打印出来。

对于n == 52,显然n < 23不满意,因此走出这个区域并执行printf()

© www.soinside.com 2019 - 2024. All rights reserved.