標(biāo)題: C語言if語句if() {}里什么都不做,可以空白或空指令嗎? [打印本頁]

作者: 李冬    時(shí)間: 2022-11-8 11:12
標(biāo)題: C語言if語句if() {}里什么都不做,可以空白或空指令嗎?
if() {}里什么都不做,可以空白嗎,或者用什么空指令



另個(gè)問   if(mm[1]==1&&mm[2]==1&&mm[3]==1&&mm[4]==1 )
可以這樣寫嗎
if(mm[1]==mm[2]==mm[3]==mm[4]==1)




作者: xuyaqi    時(shí)間: 2022-11-8 13:07
既然 if 什么都不做,就不要這條語句好了,另個(gè)問是可以的。
作者: Sean_Shao    時(shí)間: 2022-11-8 14:07
樓主所提到的問題 涉及兩方面:

1 程序邏輯

這個(gè) 建議樓主 畫流程圖 來理順 程序的邏輯走向 不要腦袋想到哪里 寫到哪里 這無異于給自己埋的雷 最后 程序的邏輯一定是亂麻一團(tuán)。

既然 if語句 后面什么都不做 那么需要做的是什么呢 這個(gè)才是程序語言應(yīng)該表達(dá)的部分 也就是說除了條件里面所描述情況外的情況 才是程序應(yīng)該處理和表達(dá)的

2 語言邏輯

這個(gè)建議樓主 先把自己所使用語言的 邏輯運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 概念仔細(xì)研究 搞清楚

至于 能夠像你提到的哪樣 做替換 請(qǐng)參考下面的程序

#include <iostream>

int main() {
    int a=1,b=1,c=1,d=1;
    if (a==b==c==d==1)
    {
    std::cout << "a==b==c==d==1";
    }
    return 0;

}
輸出:a==b==c==d==1

#include <iostream>

int main() {
    int a=3,b=3,c=3,d=3;
    if (a==b==c==d==3)
    {
    std::cout << "a==b==c==d==3";
    }
    return 0;

}

沒有輸出

為什么會(huì)出現(xiàn)這種情況 請(qǐng)樓主按照我上面所說 仔細(xì)研究語言的規(guī)范后 自行得出答案.

以上所說 都是基本功 磨刀不誤砍柴工 僅供參考。。
作者: Hephaestus    時(shí)間: 2022-11-8 14:08
你試試不就知道了嗎?
作者: wjhhhhh    時(shí)間: 2022-11-8 14:09
在Keil2、3、4 的C 里if(mm[1]==1&&mm[2]==1&&mm[3]==1&&mm[4]==1 )會(huì)出錯(cuò),要多加小括號(hào)
             if( (mm[1]==1 ) && (mm[2]==1) && (mm[3]==1 ) && (mm[4]==1 )  )
這種寫法if(mm[1]==mm[2]==mm[3]==mm[4]==1)  沒試過,估計(jì)過不去。


作者: yzwzfyz    時(shí)間: 2022-11-9 14:21
何必呢?
作者: chenshandeng    時(shí)間: 2022-11-9 15:08
你需要在后面加個(gè);這樣才是if空語句,不然報(bào)錯(cuò)的
作者: lzd918    時(shí)間: 2022-11-9 16:07
不可以,語法不符合,編譯通過不了
作者: lhzw2001    時(shí)間: 2022-11-9 16:17
可以,加個(gè)分號(hào),或大括號(hào)
作者: Longan.Wang    時(shí)間: 2022-11-9 17:13
不可以!以后問之前,先試試!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1