注冊(cè) 登錄
Office中國(guó)論壇/Access中國(guó)論壇 返回首頁(yè)

t小寶的個(gè)人空間 http://m.mzhfr.cn/?71896 [收藏] [復(fù)制] [分享] [RSS]

日志

IIf 函數(shù)的陷阱

熱度 1已有 2391 次閱讀2015-5-20 08:49 |個(gè)人分類:Access

IIf 函數(shù)有3個(gè)參數(shù),可以是3個(gè)表達(dá)式,第1個(gè)表達(dá)式的值為真時(shí)返回第2個(gè)表達(dá)式的值,為假則返回第3個(gè)表達(dá)式的值。
雖然只是返回1個(gè)值,但I(xiàn)If卻要把所有表達(dá)式都計(jì)算一遍。按理說(shuō)第1個(gè)表達(dá)式為真時(shí),只計(jì)算第2個(gè)表達(dá)式的值即可,但卻多余地把第3個(gè)表達(dá)式也計(jì)算了。因?yàn)檫@個(gè)原因,使得IIf函數(shù)的效率比較低,更嚴(yán)重的是還造就了一個(gè)陷阱。
請(qǐng)看下面的代碼:
y = IIf(x = 0, 0, 1 / x)
為了避免除0錯(cuò)誤,在IIf的第1個(gè)參數(shù)中判斷當(dāng)x=0時(shí),直接返回0。但當(dāng)x真的等于0時(shí),結(jié)果還是會(huì)出現(xiàn)除0錯(cuò)誤,因?yàn)镮If把第3個(gè)表達(dá)式也計(jì)算了!

發(fā)表評(píng)論 評(píng)論 (1 個(gè)評(píng)論)

回復(fù) zhuyiwen 2015-6-8 09:52
精辟!

facelist doodle 涂鴉板

您需要登錄后才可以評(píng)論 登錄 | 注冊(cè)

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 04:44 , Processed in 0.071688 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部