haiouda 发表于 2014-10-7 21:51:45

为什么边续执行了二条语句?

本帖最后由 风之残月 于 2014-11-9 22:36 编辑

如图:if() ,中()内为真时,执行其后的一条语句,为假时,执行 else 这条语句;
如图中,if(!a!=b),为真时,为什么执行了后面二条语句,而且后面的二条语句没在大括号中?
另一个图,我加一个大括号,认为应该是这样写更好些,可是二个的结果一样,求教{:1_1:}

downloads 发表于 2014-10-7 21:51:46

本帖最后由 downloads 于 2014-10-9 15:09 编辑

if(a>b)
-----;
else
×××××××;

是组合命令;如果a>b为真(非零),执行if(a>b)与else之间命令;-----;

                  如果a>b为假(零)时,执行else之后的命令;×××××××;

只能选择其中之一语句执行:-----;或×××××××;语句;

Angel丶L 发表于 2014-10-7 23:05:38

不加{} if 判断的话 后面只会执行一句要执行多个语句 就要 加 {}

else 是 否则的意思 后面 不加{} 也只会执行一句、
if(a>b)
xxxxxx;
esle
xxxxxx;
但是
if(a>b)
xxxxxx;
xxxxxxxxx;
esle
xxxxxx;
xxxxxxxxxxx;

这样 就 执行一句 必须要加大括号 {}

墨白_找 发表于 2014-10-8 10:05:28

。。。。。。

haiouda 发表于 2014-10-8 10:13:50

Angel丶L 发表于 2014-10-7 23:05
不加{} if 判断的话 后面只会执行一句要执行多个语句 就要 加 {}

else 是 否则的意思 后面 不加{} 也 ...

上图红圈里二句,没加括号;
但在IF 后面,却都执行了?

helloworldsjbf 发表于 2014-10-8 10:38:49

haiouda 发表于 2014-10-8 10:13
上图红圈里二句,没加括号;
但在IF 后面,却都执行了?

那两个条件是互斥的,怎么可能都执行呢

haiouda 发表于 2014-10-8 11:07:23

helloworldsjbf 发表于 2014-10-8 10:38
那两个条件是互斥的,怎么可能都执行呢
从第一个扫过(为假),才能走到第二条;从这个意义上说,二条都执行了

helloworldsjbf 发表于 2014-10-8 11:10:34

haiouda 发表于 2014-10-8 11:07
从第一个扫过(为假),才能走到第二条;从这个意义上说,二条都执行了

IF   else遵循就近原则

Thirteen 发表于 2014-10-8 11:53:47

两种写法是一样的;
if() *****;
else******;
其实就相当于一条组合指令。每次只执行其中一个,可以认为是一行语句!

NULL1024 发表于 2014-10-8 12:56:56

if

风之残月 发表于 2014-10-8 22:39:26

我这里运行了一下,没有问题,但是说实话,如果不是为了考试的话,没有必要去研究它,把代码写规范一点,不然说不定编译器什么时候就解析错误了

追风虎 发表于 2014-10-11 09:47:11

因为if语句遵循就近原则,if,else 语句只能执行后面一条语句,如果要执行多语句的话,必须加上大括号,所以你应该加上大括号,就会实现if语句的嵌套。希望能够帮到你!!!

ぐ硪总猜不透℃ 发表于 2014-10-12 09:17:58

if()后的冒号去掉

kljjkljkljljlkj 发表于 2014-10-14 09:32:41

:big

大个的糖果 发表于 2014-10-31 23:41:11

页: [1]
查看完整版本: 为什么边续执行了二条语句?