2013-09-30 190 views
0

我想問一下我們可以放多少「else if」條款的限制?我被告知,如果我們有太多的「其他」,最終會導致堆棧溢出。例如:「else if」語句是否有限制?

if (1 > 1){} 
    else if (1 > 2){} 
    else if (1 > 3){} 
     //and so on 
    else{} 

但是,我找不到有關此主題的任何證據,並且谷歌搜索沒有給出我想要的答案。下面的問題具有相同的標題,但與我想問的主題沒有任何關係。先謝謝了。

Javascript: Is there a limit to "else if" statements?

+0

你問什麼語言? – Adam

+0

沒有特定的語言,但讓我們把它當作C. –

+0

然後,我的答案適用於C和任何你可能遇到的語言。 – Adam

回答

2

在任何合理的語言的限制應是相同的通用代碼大小的限制,換言之這麼大,你將幾乎永遠也做不到。

然而,它肯定不會導致堆棧溢出,因爲if不會添加到堆棧。函數調用會將另一幀添加到堆棧中,if是分支指令。

+0

所以,如果我明白如果正確,真正的罪魁禍首是嵌套函數調用,但不是大量的「其他如果」? –

+0

堆棧溢出的罪魁禍首?是的,它幾乎總是無限遞歸。 – Adam

+0

大量的'else if'不會溢出堆棧或導致崩潰,但是如果您有頁面和頁面,則表示代碼應該更好地構造。僅僅因爲你可以不代表你*應該* .. – Adam