1
语句我试图形成一个if语句,像这样:如果多条件
int myVariable = -1;
if (0 <= myVariable <= 99)
{
// Do something
}
但是,如果我分配-1
给myVariable
,这是一个int
,if语句仍评估,以真正 。
我在做什么错?
语句我试图形成一个if语句,像这样:如果多条件
int myVariable = -1;
if (0 <= myVariable <= 99)
{
// Do something
}
但是,如果我分配-1
给myVariable
,这是一个int
,if语句仍评估,以真正 。
我在做什么错?
这不是用C++语法说出你想要的东西的正确方法。你想:
int myVariable = -1;
if (0 <= myVariable && myVariable <= 99)
{
// Do something
}
你写的是什么如下: 1)评估0 <= myVariable
,这在你的例子是假的(在C转换为0 ++在这方面) 2)然后,这个结果(0)是与< = 99比较,所以C++读取“0 < = 99”,这是真的,所以if语句是真的。
技术上false在C中用0表示。在C++'false'中是它自己的值,可以隐式转换为int,当int值为0时我认为大多数C++编译器应该有一个警告您可以启用将bool的隐式转换标记为int。 – bames53 2012-03-06 21:29:59
从技术上讲,它*是* C++语法(否则它不会编译)。这不仅是大多数人写作时的逻辑。 :P – aldo 2012-03-06 21:41:08
更新为反映此... – Oleksi 2012-03-06 21:43:26