PDA

Visualizza la versione completa : [C#] Uscire dal ciclo while


 
77Demoni
30-01-2006, 22:32
salve raga, ho fatto da poco un programma, si pu dire che stupido, per ho un problema. Praticamente io in questo programma inserisco dei numeri, ed il compilatore mi dice se sono pari, o dispari, fin qui nessun problema, il problema persiste all'uscite del ciclo do while, voglio l'uscita del ciclo sia effettuata quando premo invio senza scrivere niente. Il programma iniziale senza condizione di uscite il seguente

string tmp;
int Num;

do
{
Console.WriteLine("Inserire un numero");
tmp=Console.ReadLine();
Num = Convert.ToInt32(tmp);
if(Num%2==0)
Console.WriteLine("Il numero inserito pari");
else
Console.WriteLine("Il numero inserito
dipari");
}
while(tmp!="");

con questo codice quando premo invio senza scrivere niente, mi da eccezione nella riga"Num=Convert.ToInt32(tmp)" certo non sa convertire essendo che non inserisco niente.
Dopo qualche giorno sono riuscito a trovare una soluzione ho fatto cos.
string tmp;
int Num;

do
{
Console.WriteLine("Inserire un numero");
tmp=Console.ReadLine();
if (tmp=="")
break;
Num = Convert.ToInt32(tmp);
if(Num%2==0)
Console.WriteLine("Il numero inserito pari");
else
Console.WriteLine("Il numero inserito dispari");

}
while(tmp!="");

Cos funziona, per la condizione di uscita del while inutile, volevo sapere come posso fare in un altro modo, facendo in modo di uscire usando la condizione del while. Grazie anticipatamente

alka
30-01-2006, 22:36
A quale linguaggio fai riferimento? C#?

77Demoni
02-02-2006, 15:22
Si faccio riferimento a c#.

cubeccu
02-02-2006, 15:30
anche se la condizione inutile non mi sembra un grosso problema... se sei proprio preoccupato dell'overhead di controllare nuovamente se tmp == "" puoi fare cos:
do
{
Console.WriteLine("Inserire un numero");
tmp=Console.ReadLine();
if (tmp=="")
break;
Num = Convert.ToInt32(tmp);
if(Num%2==0)
Console.WriteLine("Il numero inserito pari");
else
Console.WriteLine("Il numero inserito dispari");

}
while(true);

oppure, anche se secondo me cos peggio, in questo modo:

Console.WriteLine("Inserire un numero"); tmp=Console.ReadLine();
while (tmp != "")
{
Num = Convert.ToInt32(tmp);
if(Num%2==0)
Console.WriteLine("Il numero inserito pari");
else
Console.WriteLine("Il numero inserito dispari");

Console.WriteLine("Inserire un numero");
tmp=Console.ReadLine();
}

mandi

Loading