2010-08-05 16 views

risposta

8

In VB.net:

if i > 0 then 
    do stuff here! 
end if 

In C#:

if (i > 0) 
{ 
    do stuff here! 
} 

Non si puo 'uscire' di un'istruzione if. Se stai provando a farlo, la tua logica è sbagliata e ti stai avvicinando dall'angolo sbagliato.

Un esempio di ciò che state cercando di ottenere potrebbe aiutare a chiarire, ma sospetto che lo stiate strutturando in modo errato.

2

Non c'è una tale equivalente, ma si ha realmente bisogno di should't con un'istruzione If. Potrebbe essere utile esaminare le istruzioni Select Case (VB) o Switch (C#).

2

In C# .NET:

if (x > y) 
{ 
    if (x > z) 
    { 
     return; 
    } 

    Console.Writeline("cool"); 
} 

Oppure si potrebbe utilizzare l'istruzione goto.

+1

Inoltre si potrebbe lanciare un'eccezione e catturarla al di fuori di "if". O semplicemente termina il processo :) – RocketR

+0

Per quanto riguarda il comando 'goto', leggi questo: http://stackoverflow.com/questions/46586/goto-still-considered-harmful – Gertsen

-3

So che questo è un vecchio post, ma ho cercato per la stessa risposta poi alla fine ho capito

 try{ 

      if (i > 0) // the outer if condition 
      { 
       Console.WriteLine("Will work everytime"); 
       if (i == 10)//inner if condition.when its true it will break out of the outer if condition 
       { 
        throw new Exception(); 
       } 
       Console.WriteLine("Will only work when the inner if is not true"); 
      } 
     } 
     catch (Exception ex) 
     { 
      // you can add something if you want 
     } 

`

+7

cattiva idea di utilizzare le eccezioni per il controllo del flusso. Sono lenti. –

+4

omg ... cos'è questa follia!?!? –

+3

Aggiungendo a ciò che @KateGregory ha detto, le eccezioni dovrebbero essere utilizzate solo quando il programma entra in uno stato raro, in errore o inaspettato. L'utilizzo di eccezioni per i mezzi di controllo del flusso è più difficile da leggere, confuso e meno comprensibile per gli altri. – Daryl

0

È possibile utilizzare

bool result = false; 
if (i < 10) 
{ 
    if (i == 7) 
    { 
     result = true; 
     break; 
    } 
} 

return result; 
+0

il codice non viene compilato, affermando che non vi è alcun loop da interrompere – Breeze