找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1586|回复: 9
打印 上一主题 下一主题
收起左侧

C语言if语句if() {}里什么都不做,可以空白或空指令吗?

[复制链接]
跳转到指定楼层
楼主
ID:709761 发表于 2022-11-8 11:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if() {}里什么都不做,可以空白吗,或者用什么空指令



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



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2022-11-8 13:07 | 只看该作者
既然 if 什么都不做,就不要这条语句好了,另个问是可以的。
回复

使用道具 举报

板凳
ID:915005 发表于 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;

}

没有输出

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

以上所说 都是基本功 磨刀不误砍柴工 仅供参考!!!
回复

使用道具 举报

地板
ID:883242 发表于 2022-11-8 14:08 | 只看该作者
你试试不就知道了吗?
回复

使用道具 举报

5#
ID:91150 发表于 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)  没试过,估计过不去。

回复

使用道具 举报

6#
ID:123289 发表于 2022-11-9 14:21 | 只看该作者
何必呢?
回复

使用道具 举报

7#
ID:1051062 发表于 2022-11-9 15:08 | 只看该作者
你需要在后面加个;这样才是if空语句,不然报错的
回复

使用道具 举报

8#
ID:221871 发表于 2022-11-9 16:07 | 只看该作者
不可以,语法不符合,编译通过不了
回复

使用道具 举报

9#
ID:203661 发表于 2022-11-9 16:17 | 只看该作者
可以,加个分号,或大括号
回复

使用道具 举报

10#
ID:77589 发表于 2022-11-9 17:13 | 只看该作者
不可以!以后问之前,先试试!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表