找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 701|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

C語言IF語句的條件判斷問題

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:709761 發(fā)表于 2025-4-29 16:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
else if (38.1<=tw<=39)和else if (38.1<=tw&&tw<=39) 一樣嗎
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:879809 發(fā)表于 2025-4-29 22:35 | 只看該作者
前面的寫法顯然是錯誤的,后面的對。
回復(fù)

使用道具 舉報

板凳
ID:1109793 發(fā)表于 2025-4-30 07:24 | 只看該作者
一樣的吧,但是前邊的能過編譯嗎?
回復(fù)

使用道具 舉報

地板
ID:709761 發(fā)表于 2025-4-30 11:22 | 只看該作者
xiaobendan001 發(fā)表于 2025-4-30 07:24
一樣的吧,但是前邊的能過編譯嗎?

能編譯通過
回復(fù)

使用道具 舉報

5#
ID:1146851 發(fā)表于 2025-4-30 13:44 | 只看該作者
Python中表達式 38.1<=tw<=39 是合法的語法,它會按照我們的預(yù)期來判斷 tw 是否在 38.1 和 39 之間,但在 C、C++、Java 等語言中,表達式會先計算 38.1 <= tw,這個比較操作會返回一個布爾值 1 和 0,然后再將這個布爾值與 39 進行比較
回復(fù)

使用道具 舉報

6#
ID:328075 發(fā)表于 2025-4-30 13:55 | 只看該作者
不知道條件的前提下,無法判斷對錯吧
回復(fù)

使用道具 舉報

7#
ID:108361 發(fā)表于 2025-4-30 14:08 | 只看該作者
(38.1 <= tw) 會先計算,結(jié)果是一個 布爾值:0(假)或 1(真)。
然后再判斷這個 0 或 1 是否小于等于 39。
這顯然不是你想表達的邏輯
回復(fù)

使用道具 舉報

8#
ID:1109793 發(fā)表于 2025-4-30 16:44 | 只看該作者
試了真能編譯過,不過6樓說的對,是按先后順序運算的。結(jié)果和右邊的是不一樣的。
回復(fù)

使用道具 舉報

9#
ID:702600 發(fā)表于 2025-4-30 20:54 | 只看該作者
不一樣
回復(fù)

使用道具 舉報

10#
ID:702600 發(fā)表于 2025-4-30 20:55 | 只看該作者
不一樣,后面的if語句永遠都不會執(zhí)行
回復(fù)

使用道具 舉報

11#
ID:1149928 發(fā)表于 2025-5-8 21:31 | 只看該作者
不一樣,<=運算是雙目運算符,你左邊那個表達式不是和數(shù)學(xué)上的表達式一個意思,計算機會一步一步算,先算38.1<=tw,返回一個值,然后再算這個值和39的大小
回復(fù)

使用道具 舉報

12#
ID:656634 發(fā)表于 2025-5-8 22:07 | 只看該作者
不一樣,有優(yōu)先級問題
回復(fù)

使用道具 舉報

13#
ID:65956 發(fā)表于 2025-5-9 08:30 | 只看該作者
建議你else if ((38.1<=tw)&&(tw<=39)) 這樣寫就能保證不會因為優(yōu)先計算問題出錯
回復(fù)

使用道具 舉報

14#
ID:1149962 發(fā)表于 2025-5-9 09:54 | 只看該作者
最好還是用后面的
回復(fù)

使用道具 舉報

15#
ID:1138534 發(fā)表于 2025-5-13 18:20 | 只看該作者
這兩個寫法 不一樣,雖然它們的語義意圖是一樣的(都想表達 “tw 在 38.1 到 39 之間”),但語法上只有一個是合法并且正確的。  ✅ 正確寫法: c 復(fù)制 編輯 else if (38.1 <= tw && tw <= 39) 這是 C 語言中判斷一個值 tw 是否在 [38.1, 39] 區(qū)間內(nèi)的標準寫法。  ❌ 錯誤寫法: c 復(fù)制 編輯 else if (38.1 <= tw <= 39)  // ❌ 錯誤 這個寫法雖然在數(shù)學(xué)中是合法的區(qū)間寫法(如:38.1 ≤ tw ≤ 39),但在 C 語言中它的解析方式不同,會導(dǎo)致錯誤邏輯。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表