永发信息网

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

答案:6  悬赏:50  手机版
解决时间 2021-03-20 12:12
  • 提问者网友:温柔港
  • 2021-03-19 20:40
关于C语言的一个问题,当if语句后的花括号去掉之后
最佳答案
  • 五星知识达人网友:duile
  • 2021-03-19 21:05
当你把if后的大括号去掉后,那么这时if语句的执行语句只有一条就是:t=a
这是如果输入的 a 比 b小就是说满足if的执行条件,那么和你不去掉大括号是一样的
都都会完成ab交换

但是,当你输入的a》b时,if (a会直接在下一条也就是 a=b执行
所以你的28可以正确得到
而此时的t并没有被准确赋值,t的值是编译程序随机赋值的,所以b=t这句之后,b才会那样
全部回答
  • 1楼网友:夜风逐马
  • 2021-03-20 02:50
因为花括号去掉后,只有t=a;一行语句在条件判断中。
输入59、28,执行a=b;b=t;
t的初值为-858993460,所以执行后a的值为28,b的值为-858993460
  • 2楼网友:荒野風
  • 2021-03-20 01:27
if (a
在a输入的数值交换
  • 3楼网友:山君与见山
  • 2021-03-20 00:48
当花括号去掉之后只有第一句是会跟着if判断的,后面两句是必定执行的。
当你输入12和37之后,判断a当你输入59和28之后,判断a
  • 4楼网友:猎心人
  • 2021-03-19 23:16
当你if后面的花括号去掉之后,默认表示
if (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
  • 5楼网友:woshuo
  • 2021-03-19 21:52
if (a你说的是这一对花括号吗?
如果不加花括号,与if自动贴合的只会是t=a;也就是if下面的第一句话,其他的都和if没有关系了。也就是成了if(a如果不去掉花括号,if后面的三句话是一个整体,if条件成立的话都执行,否则都不执行。
去掉花括号,if成立执行第一句,然后下面不属于if结构但是顺序执行;如果if不成立,第一句t=a不执行,继续执行下面的两句。
就和else和if的关系似的,else只贴合于距离他最近的那个if。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯