簡體   English   中英

C ++ / Java:切換布爾語句?

[英]C++ / Java: Toggle boolean statement?

有一個簡短的方法來切換布爾值?

使用整數,我們可以執行以下操作:

int i = 4;
i *= 4; // equals 16
/* Which is equivalent to */
i = i * 4;

那么布爾值也有一些東西(比如整數的*=運算符)?

在C ++中:

bool booleanWithAVeryLongName = true;
booleanWithAVeryLongName = !booleanWithAVeryLongName;
// Can it shorter?
booleanWithAVeryLongName !=; // Or something?

在Java中:

boolean booleanWithAVeryLongName = true;
booleanWithAVeryLongName = !booleanWithAVeryLongName;
// Can it shorter?
booleanWithAVeryLongName !=; // Or something?

沒有這樣的運算符,但這有點短: booleanWithAVeryLongName ^= true;

一個簡單的函數(在C ++中):

void toggle (bool& value) {value = !value;}

然后你使用它像:

bool booleanWithAVeryLongName = true;      
toggle(booleanWithAVeryLongName); 

我認為一個更好的類比是你正在尋找一元運算operator ++的布爾等價物,我很確定它不存在。

我從來沒有真正想過它,但我猜你總是可以將它與TROR異或:

booleanWithAVeryLongName ^= TRUE;

不確定它可以節省多少,但讀起來有點痛苦。

不完全是這樣,但在C / C ++中,存在具有賦值的按位AND / OR運算符。

對於表達式之間的邏輯ANDS / OR,我認為沒有。

但是,在C中你沒有真正的bool類型,只是整數,所以你可以使用整數運算符來完成這樣的快捷方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM