标题: C语言if语句if() {}里什么都不做,可以空白或空指令吗? [打印本页]

作者: 李冬    时间: 2022-11-8 11:12
标题: C语言if语句if() {}里什么都不做,可以空白或空指令吗?
if() {}里什么都不做,可以空白吗,或者用什么空指令



另个问   if(mm[1]==1&&mm[2]==1&&mm[3]==1&&mm[4]==1 )
可以这样写吗
if(mm[1]==mm[2]==mm[3]==mm[4]==1)




作者: xuyaqi    时间: 2022-11-8 13:07
既然 if 什么都不做,就不要这条语句好了,另个问是可以的。
作者: Sean_Shao    时间: 2022-11-8 14:07
楼主所提到的问题 涉及两方面:

1 程序逻辑

这个 建议楼主 画流程图 来理顺 程序的逻辑走向 不要脑袋想到哪里 写到哪里 这无异于给自己埋的雷 最后 程序的逻辑一定是乱麻一团。

既然 if语句 后面什么都不做 那么需要做的是什么呢 这个才是程序语言应该表达的部分 也就是说除了条件里面所描述情况外的情况 才是程序应该处理和表达的

2 语言逻辑

这个建议楼主 先把自己所使用语言的 逻辑运算符的优先级和结合性 概念仔细研究 搞清楚

至于 能够像你提到的哪样 做替换 请参考下面的程序

#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;

}

没有输出

为什么会出现这种情况 请楼主按照我上面所说 仔细研究语言的规范后 自行得出答案.

以上所说 都是基本功 磨刀不误砍柴工 仅供参考!!!
作者: Hephaestus    时间: 2022-11-8 14:08
你试试不就知道了吗?
作者: wjhhhhh    时间: 2022-11-8 14:09
在Keil2、3、4 的C 里if(mm[1]==1&&mm[2]==1&&mm[3]==1&&mm[4]==1 )会出错,要多加小括号
             if( (mm[1]==1 ) && (mm[2]==1) && (mm[3]==1 ) && (mm[4]==1 )  )
这种写法if(mm[1]==mm[2]==mm[3]==mm[4]==1)  没试过,估计过不去。


作者: yzwzfyz    时间: 2022-11-9 14:21
何必呢?
作者: chenshandeng    时间: 2022-11-9 15:08
你需要在后面加个;这样才是if空语句,不然报错的
作者: lzd918    时间: 2022-11-9 16:07
不可以,语法不符合,编译通过不了
作者: lhzw2001    时间: 2022-11-9 16:17
可以,加个分号,或大括号
作者: Longan.Wang    时间: 2022-11-9 17:13
不可以!以后问之前,先试试!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1