2013-09-30 2 views
-3

Je suis en train de remplacer ce bloc de code avec une autre boucle (je pensais à tout et à faire, mais pour une raison quelconque je n'ai pas descendre entièrement la logique.C# Remplacer une instruction goto avec un if-else

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

que quelqu'un peut me aider avec la logique ici? J'ai vu quelques messages sur le remplacement des déclarations goto, mais ils ne compté sur un seul si

sans autre. ce qui salit ma pensée jusqu'à est le fait qu'il n'y a rien à l'intérieur de la déclaration if, juste le goto Si je devais essayer de le traduire en une déclaration while, il me laisse avec ceci:

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

Merci

+0

'while (condition) {/ * Code * /}' .. assez simple. –

+0

Qu'est-ce qui est difficile à comprendre pour vous? –

+0

Le commentaire dans la condition while est incorrect. Cela devrait être ce que vous avez entre "répéter:" et "si (condition)" –

Répondre

3

Il est simple do - boucle while:

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

// else code here 
+0

Je pense que c'est la meilleure façon de procéder, car la vérification des conditions est à la fin. C'est seulement parce que dans l'instruction if (near goto) il n'y a pas de code. +1 –

+1

J'ai édité votre réponse pour rendre un peu plus évident ce que le «// ...» représente. –

+0

J'ai été capable de le traduire grâce à l'explication et à l'édition de Jeroen. Cela a du sens maintenant. Merci :) – AzureFrost

Questions connexes