c ++需要帮助才能理解

时间:2015-02-01 20:53:52

标签: c++

所以我有这段代码。 我理解了循环实际上何时再次发生的所有事情。我的意思是e(!valid)语句的含义。它是指它的数值还是什么?有人可以向我解释一下。考虑声明的所有必需变量。并忽略大写。 代码是:

do
{

    valid=1;
    gotoxy(22,7);
    gets(emailid);
    int flag=0;
    for (int i = 0; emailid[i] != '\0'; i++)
        if (emailid[i] == '@')
            flag++;
    If(!flag)
    {
        valid = 0;
        cout << "not a valid id. Try again";
        getch();
    }
} while(!valid);

所以主要是我想知道它是有效的,重点是什么呢!有效和失败意味着什么。 从我能得到的,它与它的数值有关,但我仍然感到困惑。

3 个答案:

答案 0 :(得分:3)

回答这个问题:

} while (!valid);

表示:将valid后面的整数视为布尔值。 (假设它是一个整数,因为它的值为1)

i == 0 -> false
i != 0 -> true

有效的:

valid == 0 -> true
valid != 0 -> false

答案 1 :(得分:2)

在C ++中,值0被视为“false”,任何其他整数被视为“true”。在这种情况下,当valid等于0时,循环运行。

答案 2 :(得分:2)

可以通过这种方式将数字值提升为bool类型: 零表示false,其他值表示true。因此!valid仅在valid == 0时才会返回true。 这意味着,do while()循环会重复,直到valid等于0以外的值。