2013-04-17 6 views
15

Qual è la differenza tra Do While dove l'istruzione è la prima riga nel blocco del ciclo e solo il singolo Mentre in VB.NET?Qual è la differenza tra fare mentre e mentre in VB.NET?

Non sembrano offrire alcuna differenza di comportamento.

+1

@Tim No, estraneo. –

+0

Non c'è differenza. Uno è lì per motivi legacy. BASIC è un linguaggio oooooo, e Vb.Net porta ancora parte di quel bagaglio, ad es. 'Mid (MyStr, 2) =" Ciao "' vuoi indovinare cosa fa? –

risposta

21

In Visual Basic questi sono identici:

Dim foo As Boolean = True 

    While Not foo 
     Debug.WriteLine("!") 
    End While 

    Do While Not foo 
     Debug.WriteLine("*") 
    Loop 

Questi non sono; il do viene eseguito una volta:

Dim foo As Boolean = True 

    While Not foo 
     Debug.WriteLine("!") 
    End While 

    Do 
     Debug.WriteLine("*") 
    Loop While Not foo 
+2

Per completezza: 'Do While Not ...' può essere scritto come 'Do Until'. –

+1

Onestamente, evito attivamente "Do Until". Ho visto anche persone che accidentalmente lanciano loop infiniti nel codice di produzione. – valverij

+0

Grande, questa è la spiegazione che stavo cercando. – jaffa

-4

Do While esegue prima e quindi verifica se valido. While controlla prima e poi esegue.

while (1!=1){ echo 1} 

uscita volontà nulla

Ma

do{echo 1} while (1!=1) 

uscita volontà 1 volta.

+1

Non sto chiedendo la differenza tra do {} while e while {} end while. Sto parlando del do mentre {}. – jaffa

+0

Non esiste una cosa da fare mentre {} in C# AFAIK – Borniet

+0

Che dire invece di VB.NET? – jaffa