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