for和if语句问题

第1个

img

第2个

img
这两个代码有什么区别?为什么打印出来的结果不一样?

// 含义是,如果条件成立,执行语句一,条件不成立,执行语句二
if(条件)
  语句一
else
  语句二

// 含义是, 如果条件成立执行,语句一,条件不成立,不执行语句一
// 无论条件成不成立都执行语句二
if(条件)
  语句一
语句二

if、for、else如果不加{}的话,默认只对紧跟着的第一条语句生效

一个是如果为5就打印一个'嗯'出来,
另一个是如果为5就<只>打印一个'嗯'出来
第二段代码中if和else是互斥的,就是说如果打印了'嗯'就不会再打印'通过'
有帮助望采纳

第一个的if有问题,如果没有花括号{}包裹着,默认只有第一个,也就意味着只有printf(嗯n”)是if的条件,而printf(通过\n”)都会执行

if语句后面如果需要执行多条语句,就需要加{}
在你的例子里,如果你想在if语句条件成立后执行printf("嗯"); printf("通过");这两句,那么就需要把这两句用{}包裹起来,如下:

if(i == 5)
{
printf("嗯"); 
printf("通过");
}

如果是下面这样:

if(i == 5)
printf("嗯"); 
printf("通过");

那么,在i==5成立时,先执行printf("嗯"); 然后结束if语句,再执行printf("通过"); printf("通过");这一句就不属于if语句,所以不管i==5成不成立,printf("通过");都会被执行。

if(i==5)
printf("嗯");
else
printf("通过");
这么写,是在i==5成立时,执行printf("嗯");在i==5不成立时执行printf("通过");