Come si scrive un ciclo Do .. While in C#?Do .. While loop in C#?
(Edit:.! Sono un programmatore VB.NET cercando di fare il passaggio a C#, così io ho esperienza con .NET/VB sintassi Grazie)
Come si scrive un ciclo Do .. While in C#?Do .. While loop in C#?
(Edit:.! Sono un programmatore VB.NET cercando di fare il passaggio a C#, così io ho esperienza con .NET/VB sintassi Grazie)
//remember, do loop will always execute at least once, a while loop may not execute at all
//because the condition is at the top
do
{
//statements to be repeated
} while (condition);
La tua condizione while non è un'espressione booleana ... –
@Jon Skeet - scusa, sono normalmente VB – BlackICE
do {} while (true); –
Ecco un semplice esempio che verrà stampare alcuni numeri:
int i = 0;
do {
Console.WriteLine(++i);
} while (i < 10);
La forma generale è:
do
{
// Body
} while (condition);
Dove condition
è una certa espressione di digitare bool
.
Personalmente Ho raramente scrivere do/while - for
, foreach
e dritto while
cicli sono molto più comuni nella mia esperienza. Quest'ultimo è:
while (condition)
{
// body
}
La differenza tra while
e do...while
è che nel primo caso si mai essere eseguito il corpo se la condizione è falsa per cominciare - mentre nel secondo caso è sempre eseguita una volta prima la condizione è mai valutata.
E questa è la chiave .. se vuoi che la prima esecuzione sia garantita, usa il do-while. Altrimenti, mentre è davvero un approccio migliore. –
using System;
class MainClass
{
public static void Main()
{
int i = 0;
do
{
Console.WriteLine("Number is {0}", i);
i++;
} while (i < 100);
}
}
Un altro metodo sarebbe
using System;
class MainClass
{
public static void Main()
{
int i = 0;
while(i <100)
{
Console.WriteLine("Number is {0}", i);
i++;
}
}
}
grazie per la chiara spiegazione –
A parte la risposta di Anthony Pegram, è possibile utilizzare anche il ciclo while, che controlla la condizione prima di entrare nel ciclo
while (someCriteria)
{
if (someCondition)
{
someCriteria = false;
// or you can use break;
}
if (ignoreJustThisIteration)
{
continue;
}
}
Quite sorprendendo che nessuno ha ancora menzionato l'esempio classico del costrutto do..while. Do..while è la strada da percorrere quando si vuole eseguire del codice, controllare o verificare qualcosa (normalmente in base a ciò che è accaduto durante l'esecuzione di quel codice), e se il risultato non ti piace, ricomincia da capo. Questo è esattamente ciò che serve quando si vuole un po 'di input dell'utente che si inserisce alcuni vincoli:
bool CheckInput(string input) { ... }
...
string input;
...
do {
input=Console.ReadLine();
} while(!CheckInput(input));
che è una forma del tutto generica: quando la condizione è abbastanza semplice, è comune a posizionarlo direttamente sul costrutto di ciclo (all'interno della parentesi dopo la parola chiave "while"), piuttosto che avere un metodo per calcolarlo.
I concetti chiave in questo utilizzo sono che è necessario richiedere l'input dell'utente almeno una volta (nel migliore dei casi, l'utente lo otterrà correttamente al primo tentativo); e che la condizione non ha molto senso fino a quando il corpo non ha eseguito almeno una volta. Ognuno di questi è un buon suggerimento che ... è lo strumento per il lavoro, entrambi insieme sono quasi una garanzia.
Dal momento che hai menzionato che provenivi da VB.NET, ti suggerisco caldamente di controllare this link per mostrare i confronti. Puoi anche usare this wensite per convertire VB in C# e viceversa - così puoi giocare con il tuo codice VB esistente e vedere come appare in C#, inclusi loop e qualsiasi altra cosa sotto il figlio ..
per rispondere alla domanda del ciclo, è semplice voglia di fare qualcosa di simile:
while(condition)
{
DoSomething();
}
È anche possibile fare - mentre in questo modo:
do
{
Something();
}
while(condition);
Ecco another code translator ho usato con successo, e another great C#->VB comparison website. In bocca al lupo!
grazie per i link alla pagina di confronto .. questo è proprio quello di cui avevo bisogno –
MSDN è una miniera d'oro per domande come questa. Parola chiave C# 'do': http://msdn.microsoft.com/en-us/library/370s1zax(VS.80).aspx –
Dato che vieni da VB.NET, controlla alcuni link che ho fornito di seguito per vedere i confronti di sintassi per i loop e qualsiasi altra cosa di cui hai bisogno in risposta qui sotto – dferraro