2013-09-30 29 views
-3

我試圖用任何其他循環替換這段代碼(我曾經想過,但是由於某種原因,我沒有完全理解邏輯C#用一個if-else替換goto語句

repeat: 
    ... 
    if (condition) 
    { 
    goto repeat 
    } 
    else 
    { 
    ... 
    } 

有人可以幫助我走出這裏的邏輯?我看到了有關更換goto語句的幾個帖子,但是,如果沒有別人的,他們只依靠單一的。

的東西是搞亂我的思路了事實上if語句裏面沒有任何東西,只是goto,如果我想把它翻譯成while語句,它會給我留下如下結果:

while (condition) 
{ 
    // don't know what goes here since there is nothing but goto in the if statement 
} 
// else stuff 

感謝

+0

'而(條件){/ *代碼* /}'..很簡單。 –

+0

爲你理解這段代碼有什麼困難? –

+0

while條件中的註釋是錯誤的。這應該是你之間的「重複:」和「如果(條件)」 –

回答

3

很簡單do - while循環:

do 
{ 
    // code between "repeat:" and the if here 
} while (condition); 

// else code here 
+0

之間有我認爲這是最好的方式去,因爲條件檢查是在結束。這只是因爲在if語句中(goto附近)沒有代碼。 +1 –

+1

我編輯了你的答案,使其更清楚'/ ... ...'代表什麼。 –

+0

感謝Jeroen的解釋和編輯,我能夠翻譯它。現在有道理。謝謝 :) – AzureFrost