中易网

关于C语言的一个问题,当if语句后的花括号去掉之后

答案:6  悬赏:30  
解决时间 2021-02-10 09:14
关于C语言的一个问题,当if语句后的花括号去掉之后
最佳答案
当你把if后的大括号去掉后,那么这时if语句的执行语句只有一条就是:t=a
这是如果输入的 a 比 b小就是说满足if的执行条件,那么和你不去掉大括号是一样的
都都会完成ab交换

但是,当你输入的a》b时,if (a<b) t=a;不会被执行
会直接在下一条也就是 a=b执行
所以你的28可以正确得到
而此时的t并没有被准确赋值,t的值是编译程序随机赋值的,所以b=t这句之后,b才会那样
全部回答
if (a<b) 在a<b的情况下 输入的数值交换
当花括号去掉之后只有第一句是会跟着if判断的,后面两句是必定执行的。 当你输入12和37之后,判断a<b不为0,if后面那一句执行,t=12,然后a=37,b=12。 当你输入59和28之后,判断a<b为0,if后面那一句不执行,然后执行a=b,b=t,也就是a=28,b=t,由于t没赋初值,t就是给他分配的那块内存空间中原先存的数,就是那一堆乱数,然后b就等于那一堆乱数了。
当你if后面的花括号去掉之后,默认表示 if (a<b) t=a; 这句话判断一下是否执行,而 a=b; b=t; 必定执行。 12<37所以,t=a=12.因此 在后面a=37,b=t=12. 而59>28, 语句t=a不会执行。在后面a=b=28,而b=t,由于t没有初始化,所以是一个随机数,因此输出-858993460
对于 这个程序来说 ,加与不加都一样。

对于c语言中的循环和if语句来说,其执行体只能有一条语句,如果有超过一条语句,就要用大括号括起来,而这个程序中的外层for的执行语句就是另一个for循环,所以外循环的执行体只有一条语句,可不加大括号,对于内循环来说 ,它的循环体也只有一条if语句,对于这条if语句来说,它的执行体也只有一条赋值语句。所以可以不加大括号。
if (a<b){t=a;a=b;b=t;} 你说的是这一对花括号吗? 如果不加花括号,与if自动贴合的只会是t=a;也就是if下面的第一句话,其他的都和if没有关系了。也就是成了if(a<b) t=a;这样的结构,如果a<b成立,那就t=a吧,至于a=b;b=t;就与if判断没有关系了。而是执行完if这个整体结构后顺序往下遇到的结构。 如果不去掉花括号,if后面的三句话是一个整体,if条件成立的话都执行,否则都不执行。 去掉花括号,if成立执行第一句,然后下面不属于if结构但是顺序执行;如果if不成立,第一句t=a不执行,继续执行下面的两句。 就和else和if的关系似的,else只贴合于距离他最近的那个if。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电解电容时间久了会有那些变化
一项工程,甲单独做8小时,乙单独做6小时。
全国计算机等级考试上机考试题库二级C 序列号
电链锯怎么拆开
小规模注册资本100万,再注资400万注资怎么办
第三方征信是什么,怎么查,有什么用
在成都当酒吧歌手一个月最多能赚多少钱
卫生许可证号:豫卫食证字(2009)第410000一000
岚马线地址有知道的么?有点事想过去
上海交运浦东汽车综合检测公司这个地址在什么
风儿轻轻摇花儿要发芽是哪一首广场舞
联想C200(一体机)求升级办法,高手进
星露谷物语只要买东西就卡死了,按esc键没用
脸上起了几个小红包,不疼不痒,是什么?
G220/大广高速公路(路口)地址在哪,我要去那
推荐资讯
女方提出离婚,就什么都没有吗?
张佳宁男朋友是谁
崂山区青岛鑫华盛照相怎么去啊,谁知道地址啊
我骑自行车在公路上骑的不算快也不算慢,一个
人寿保险99鸿福交满20年毎隔3年领多少钱
报社记者出差的费用怎么报销?
一个关于现在热播的百事可乐广告的问题
aoc2369v显示器 刷新率最大是多少,能设置么
事业单位职业能力倾向测验 满分几分?每题几
html5 表单输入时有个小叉号是怎么做的
老李菜馆在什么地方啊,我要过去处理事情
太原市太航医院-住院部怎么去啊,有知道地址
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?