找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C语言if语句执行的问题

  [复制链接]
跳转到指定楼层
楼主
ID:709761 发表于 2022-3-7 14:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题1:if(0<i<10)还是写成if(0<i&&i<10)
问题2:if()后面只执行一个FOR循环,需要加{}吗

if(i==0)

for(i = 0; i < 6; i++)
                                {
                                UartSend(sj[ i]);
                                }        

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

使用道具 举报

沙发
ID:123289 发表于 2022-3-7 16:40 | 只看该作者
编译一下试试。
回复

使用道具 举报

板凳
ID:830240 发表于 2022-3-7 16:43 | 只看该作者
本帖最后由 YQR123 于 2022-3-7 16:46 编辑

问题1:要写成if(0<i && i<10)养成良好的编程习惯,最好写成这样if((0<i) && (i<10))这样的;问题2:if()后面只跟for()循环,for循环里面有很多条语句是for循环的{}去包含,if()后面可以不带{},但是养成良好的习惯,if()后面哪怕只有一条单语句,都尽量用{},以便以后维护和别人阅读你的代码。
回复

使用道具 举报

地板
ID:908826 发表于 2022-3-7 16:56 | 只看该作者
第一个问题:是第二个写法,第二个问题:需要加{},if后面就算只执行一句,按照网上流传的编程规范也要加{}
回复

使用道具 举报

5#
ID:879809 发表于 2022-3-7 19:03 | 只看该作者
关于第一个问题,别人的回答都是对的,不再赘述。
第二个问题,没必要加{},最后会indent或者astyle格式化代码,if和for都会有对应的缩进,能看出是不同的层次,事实上Python这个语言就取消了{},用缩进表示层次关系,连缩进都看不懂还是赶紧改行吧。
回复

使用道具 举报

6#
ID:969868 发表于 2022-3-7 19:28 | 只看该作者
第一个用第二个写法 第二个可以 但是建议加{}更加规范 还有注意缩进
回复

使用道具 举报

7#
ID:1011864 发表于 2022-3-24 15:40 | 只看该作者
问题一的两个没有区别
问题二也是没有问题的
回复

使用道具 举报

8#
ID:883242 发表于 2022-3-25 04:08 | 只看该作者
caowei123 发表于 2022-3-24 15:40
问题一的两个没有区别
问题二也是没有问题的

懂就说,不懂就别瞎说误导大家。

前面那么多人都说了问题一的两种写法之一是错的,你还在这里胡说八道来误导新手!
回复

使用道具 举报

9#
ID:1012964 发表于 2022-3-25 11:55 | 只看该作者
问题1:如果你的0没有意义的话建议直接写成i<10,如果需要写的话就第二种。问题二:有没有{}都是可以的,没有实际意义。
回复

使用道具 举报

10#
ID:824490 发表于 2022-3-25 12:48 | 只看该作者
多层嵌套时,只有最内层的才可以省去{},而且这个最内层嵌套还必需是只有一条语句时才行!
回复

使用道具 举报

11#
ID:824490 发表于 2022-3-25 12:50 | 只看该作者
标准写法:
if(i==0)

for(i = 0; i < 6; i++)
                                {
                                UartSend(sj[ i]);
                                }     

或省略写法:
if(i==0)

  for(i = 0; i < 6; i++)     UartSend(sj[ i]); //此处可省去{}

回复

使用道具 举报

12#
ID:121859 发表于 2022-3-25 12:54 | 只看该作者
问题1:if(0<i && i<10)
问题2:if(i==0)for(i = 0; i < 6; i++) UartSend(sj[ i]);
回复

使用道具 举报

13#
ID:409340 发表于 2022-3-25 13:58 | 只看该作者
一般if后面只执行一条语句可以不加{};
回复

使用道具 举报

14#
ID:1013024 发表于 2022-3-25 15:43 | 只看该作者
问题1写成第2种方式,问题2原理可以不需要加{},但是加{}可以方便大家阅读理解
回复

使用道具 举报

15#
ID:47286 发表于 2022-3-25 19:41 | 只看该作者
搭车 问一下 有些人写喜欢省略 比如if(x) 这时候 是if(x==1)还是if(x==0)啊 我一般当=1理解 是么
回复

使用道具 举报

16#
ID:1013226 发表于 2022-3-26 15:31 | 只看该作者
问题1:在程序里面区间写法都只能像后面这种,前面是数学的写法哦。问题2 :最好是加上嘛
回复

使用道具 举报

17#
ID:1013226 发表于 2022-3-26 15:32 | 只看该作者
问题1:要写成if(0<i && i<10)哦;问题2:if()后面只跟for()循环,for循环里面有很多条语句是for循环的{}去包含
回复

使用道具 举报

18#
ID:161164 发表于 2022-3-26 18:08 来自手机 | 只看该作者
dzbj 发表于 2022-3-25 19:41
搭车 问一下 有些人写喜欢省略 比如if(x) 这时候 是if(x==1)还是if(x==0)啊 我一般当=1理解 是么

比较喜欢用if(x) 和if(!x),当x为bit类型时
回复

使用道具 举报

19#
ID:1014099 发表于 2022-3-29 19:40 | 只看该作者
问题一:正常的表达,if(0<i<10)就行了。关于问题2可以加,也可以不加。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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