第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

鏈接多個大于/小于運算符

鏈接多個大于/小于運算符

C
子衿沉夜 2020-02-02 14:23:41
在if聲明中,我想包含一個范圍,例如:if(10 < a < 0)但是這樣做,我得到一個警告“毫無意義的比較”。但是,這可以正常工作而沒有任何警告:if(a<10 && a>0)是否可以在C中實現(xiàn)第一種情況?
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經(jīng)驗 獲得超6個贊

請注意,原始版本if(10 < a < 0)完全合法。它只是沒有做您可能(合理地)認為的事情。您很幸運,編譯器將其識別為可能的錯誤并就此警告您。


該<運營商聯(lián)營左到右,就像+操作。因此,正如a + b + c真正的意思(a + b) + c,a < b < c真正的意思(a < b) < c。所述<,如果條件為假,1,如果它是真實的操作者產(chǎn)生的0 int值。因此,您正在測試0小于c還是1小于c。


在不太可能的情況下,這實際上是您想要執(zhí)行的操作,添加括號可能會使警告消失。這還將使以后閱讀您的代碼的任何人都知道您知道自己在做什么,因此他們不會“修復(fù)”它。(同樣,這僅適用于您真正想要的不太可能發(fā)生的事件(a < b) < c)。)


檢查是否a小于b和b小于的方法c是:


a < b && b < c

(有些語言(包括Python)在數(shù)學中通常是a < b < c手段,即手段a<b && b<c,而C恰好不是這些語言之一。)


查看完整回答
反對 回復(fù) 2020-02-02
?
幕布斯6054654

TA貢獻1876條經(jīng)驗 獲得超7個贊

第一個進行比較,然后將第一個結(jié)果與第二個值進行比較。在這種情況下,操作員組從左到右分組,所以等效于(10<a) < 0。它給出的警告確實是因為<始終會產(chǎn)生0或1。警告是告訴您,第一次比較的結(jié)果永遠不會小于0,因此第二次比較將始終產(chǎn)生false。


即使編譯器不會抱怨它,第二點也沒有太大的改進。一個數(shù)字如何同時小于0但大于10?理想情況下,編譯器會警告您該條件始終為假。想必你想0<a<10和a>0 && a<10。


您可以只使用一個比較就可以得到第二個效果:if ((unsigned)a < 10)僅當數(shù)字在0..10范圍內(nèi)時才為真。通??梢允褂靡韵麓a將范圍比較簡化為單個比較:


if ((unsigned)(x-range_start)<(range_end-range_start))

    // in range

else

    // out of range.

曾經(jīng)這是體面的匯編語言編程的主要內(nèi)容。我懷疑許多人是否會再做(我當然不這樣做)。


查看完整回答
反對 回復(fù) 2020-02-02
?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

如上所述,您必須拆分支票。從編譯器的角度考慮它,它一次只看一個運算符。10 <a =是或否。然后執(zhí)行True / False <0,這沒有任何意義。


查看完整回答
反對 回復(fù) 2020-02-02
  • 3 回答
  • 0 關(guān)注
  • 473 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號