2009-10-13 46 views
1

好吧,我不確定我的返回行是否會結束for()循環或只是if()問題?返回if()裏面的for()是否返回i​​f()或for()?

例子:

for(;;) { 
    wait(1); 
    if(something) { 
    tokens = strTok(something, " ") 
    if(tokens.size < 2) 
     return; 
    } 
} 

我猜它會剛從如果(東西)的問題回來,但我只是想是的......

+6

爲什麼不自己嘗試一下,看看會發生什麼? –

+0

我假設你在考慮休息而不是回報。見sepp2k的答案。 –

+2

其中,當提出問題時,總是值得指定它所用的語言(這看起來像C或C++,但它也可以是Java或C#或JavaScript或任何其他幾十個花括號族語言)。爲此使用標籤。 –

回答

17

在C語言中,return退出整個函數。 break將退出最內層循環(fordo...whilewhile

1

這可能取決於特定語言,但對於我能想到的所有語言來說,返回將從當前函數返回。 FOR()和IF()結構通常不會有返回語句。

2

返回大多數語言將結束整個方法。

3

在我知道(除哈斯克爾)所有語言return從封閉函數/方法返回,而break將從循環「回報」。

+0

在XQuery和XPath 2.0中,'return'是FLWOR關鍵字,它完全等價於C#LINQ'select' - 也就是你在C#中用xs選擇x來從x寫入的內容,你可以寫成'for $ x in $ xs在XQuery中返回$ x'。 –

1

對於我所知道的所有語言,RETURN是「停止做你正在做的事情並完全退出該功能」。根據你的描述,你顯然不想要RETURN,你需要一個BREAK或CONTINUE,這取決於你使用的語言。

1

這大概都是在一個函數或方法裏面; RETURN將退出該功能/方法。

爲了給出更多過程設置的示例,在PHP文件中,不在函數中的RETURN將退出當前腳本文件。 (同樣,它不在於它是否在其他區塊內。)