Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema per uscire dal ciclo while

    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

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288

    Moderazione

    A quale linguaggio fai riferimento? C#?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Si faccio riferimento a c#.

  4. #4

    Re: Problema per uscire dal ciclo while

    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
    "I video giochi non influenzano i bambini. Voglio dire, se Pac-man avesse influenzato la nostra generazione, staremmo tutti saltando in sale scure, masticando pillole magiche e ascoltando musica elettronica ripetitiva!" (Kristian Wilson, Nintendo Inc., 1989)
    Pochi anni dopo naquero le feste rave, la musica techno e l'ecstasy...

    :quote:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.