在遞迴函式中因不正確使用公共變數而形成死迴圈

2022-01-11 19:00:56 字數 1167 閱讀 1369

昨天碰到了挺鬱悶的錯誤,我寫的乙個遞迴函式,形成了死迴圈。**如下:12

'遞迴刪除頻道,引數:頻道id

3subdeleteboard(bid)

4'刪除該頻道所有新聞

5news.deletebycondition 

"boardid="&

bid6

'刪除該頻道所有子頻道

7dimbs

8bs =

board.getlist(

"fartherid="&

bid, 

false, -

1, -1

)9ifisarray

(bs) 

then

10fori

=lbound

(bs) 

toubound

(bs)

11deleteboard bs(i).id

12next

13endif

14'刪除該頻道

15board.delete bid

16end sub

17後來檢查才發現,罪魁禍首就是那個i,它是乙個全域性變數。遞迴的時候,在另一次呼叫的時候,會修改它的值……因而,就莫明其妙的形成了死迴圈。修改後**如下:12

'遞迴刪除頻道,引數:頻道id

3subdeleteboard(bid)

4'刪除該頻道所有新聞

5news.deletebycondition 

"boardid="&

bid6

'刪除該頻道所有子頻道

7dimbs, i

8bs =

board.getlist(

"fartherid="&

bid, 

false, -

1, -1

)9ifisarray

(bs) 

then

10fori

=lbound

(bs) 

toubound

(bs)

11deleteboard bs(i).id

12next

13endif

14'刪除該頻道

15board.delete bid

16end sub

17增加了i的內部宣告,這樣,就會使用內部的i,而不是全域性的那個。

MM中物料期間不正確

會計期間一般可以開多個,但是物料期間最多也就連續2個期間,一般建議物料期間就開在當前,只是在月初盤點或者財務結賬之前開2個 mmpv是開啟期間,你輸入的期間加入是2 2009,那麼在你開啟之前就是01 2009和12 2008這2個期間都是開啟的,你用mmpv開啟2 2009之後,那麼12 2008...

fscanf讀出來的數字不正確 快速正確使用萬用表

電路最基本的3個單位分別為 電壓 符號 u,單位 伏特 v。電阻 符號 r,單位 歐姆 電流 符號 i,單位 安培 a 三個量共同作用的結果就是功率 p,單位 瓦特 w,其他還有千瓦 kw。比如我們常說這個燈泡是70瓦的,21瓦等。指的就是他的功率。他們之間的關係為 功率 電壓x電流 p ui 電壓...

if函式判定不正確?JS中返回false的情況

作為在前端領域不斷探索的一員,在此記錄開發中遇到的問題,如果你也遇到了相同的問題,希望本文對你有幫助。遇到的問題 開發中想根據test物件是否有type屬性來進行不同的邏輯的操作,type 0時,原本是想要輸出is true的,可實際結果卻是輸出的is false。百思不得其解,當時真的是沒想到這一...