if (digit_seen[digit]) break;这一段的意思是不是当digit等于0是,直接退出呢?没懂

#include
#include

int main(void)
{
bool digit_seen[10] = { false };
int digit;
long n;

printf("Enter a number: ");
scanf("%ld", &n);

while (n > 0) {
    digit = n % 10;
    if (digit_seen[digit])
        break;
    digit_seen[digit] = true;
    n /= 10;
}

if (n > 0)
    printf("Repeated digit\n");
else
    printf("No repeated digit\n");

return 0;

}

if判断语句是,当()里面判断为真时执行下一条语句,当()内判断为假时跳过下一条语句。按你所说,if (digit_seen[digit]) break;并不说digit等于0时break,而是当digit_seen[digit]等于0时break。你会了吗,我的上个月写博客里面就有判断语句ifelse的用法。