作者hallogameboy (时の音の精灵)
看板b98902HW
标题[计程] && 与 ||运算子的判断顺序与判断与否
时间Mon Oct 12 23:59:12 2009
and(
&&) 与 or(
||)运算子的判断顺序与判断与否
之前看到一些同学在
&&和
||上
有发生一些因为
摆放顺序而发生的
记忆体使用错误
就上来发这篇
先谈谈运算结果
他的运算结果会是
A|B|A && B|A || B
------------------
0|0|
0 | 0
0|1|
0 | 1
1|0| 0 |
1
1|1| 1 |
1
但是在实际运作上,有一件需要注意的事情,
因为&&与||的计算顺序是
由左到右
所以
A&&B时,电脑会先判断A
如果
A是0,电脑会
直接输出0,而不去对B做判断
而
A||B的话
如果
A是1,电脑也会
直接输出1,而不去对B做判断
以这次作业来说,
有一些同学写
if(x>=0 && x<n && y>=0 && y<n &&
map[x][y]){
...
}
会通过测试,
但是一些同学写
if(
map[x][y] && x>=0 && x<n && y>=0 && y<n){
...
}
就使用错误的记忆体了。
注意到了吗?
如果x跟y是不合法的x,y
虽然判断是里面map[x][y]会超出阵列
第一种写法因为
前面就会有出现0的情况
所以
不会去找map[x][y]
但是第二种写法因为
&&会从左到右判断
所以
第一个判断就是map[x][y],於是就有可能超出你设定的范围了
写的时候要稍微注意一下顺序
不过,
最保险的方法是分开写就是了
先判断合不合法,再判断里面的东西
最後补个八卦
&&的运算比||优先
所以在一串&&跟||的判断式里面,会先算&&喔
不过不过,保险一点还是用个括号比较保险XD
--
Google 时の音の精灵| ████████▕
検索▏
検索オプション | 表示设定
▇▇  ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄
搜寻: ⊙ウェブ全体から検索 ○日本语のページを検索 ○萝莉検索
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.77.105
1F:推 robertabcd:推~~ 10/13 00:03
2F:推 hoaaoh: 谢谢姜姜强者的分析让我获益良多m(= =)m 10/13 00:05
3F:推 lachu:姜神出手 不同凡响XD 10/13 00:07
4F:推 rod13824:推推推 10/13 00:09
5F:推 gene9216:真强者就是真强者!!!推 10/13 00:11
6F:推 zxm20243:强者教学文大推! 10/13 00:44
7F:推 jenny2921: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 00:47
8F:推 SoranoKid:是姜神!! 10/13 00:51
9F:推 sunjw:推! 好用心 10/13 01:30
10F:推 iForests:受益匪浅!! 10/13 01:32
11F:推 davll:推姜神!!m(_ _)m 10/13 01:52
12F:推 crazy05:感谢姜姜真强者...原来我一直都可以少一层判断式 10/13 02:37
13F:推 sa072686: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 04:06
14F:推 Natsutaka: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 04:27
15F:推 erodora: 谢谢姜江绅士的分析让我获益良多m(_ _)m 10/13 08:19
16F:推 cwahbong:所谓的短路评算(Short-circuit evaluation).... 10/13 08:25
17F:推 s864372002: 谢谢糟糕姜姜的分析让我获益良多m(_ _)m 10/13 09:10
18F:→ yiping0928: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 09:17
19F:推 iago2007: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 10:47
20F:推 kf50321: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 12:54
21F:推 hoisee: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 15:22
22F:推 peteranny: 姜姜姜姜姜姜姜姜姜姜姜姜姜姜姜\(^o^)/ 10/13 15:45
23F:推 andy74139: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 16:15
24F:推 YAOMMENT: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 16:27
25F:推 rinner: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/13 22:58
26F:推 paul112004: 谢谢姜姜强者的分析让我获益良多m(_ _)m 10/14 19:56