Ciclo While in C#

Nell’articolo precedente avevamo parlato del primo ciclo o struttura iterativa, il for, questa volta parleremo di altri cicli e strutture di controllo. Un altro modo per iterare in C# è il ciclo while, vediamone la sintassi attraverso un esempio.

using System;

public class Corso
{
      static void Main(string[] args)
      {
           int k = 1;
           while (k <= 100)
           {
              if ((k % 2) == 0)
                Console.WriteLine("Il numero " + k + " è pari");
              ++k;
            }

            Console.ReadKey();
       }
}

Come si vede dall’esempio il while vuole una condizione di termine, quindi mentre il valore è vero il ciclo viene ripetuto, se ad esempio scrivessi

while (true)
{
   ...fai qualcosa
}

il programma entrerà in un loop continuo ed il programma si “impallerà”, quindi attenzione. Per far terminare subito un ciclo si usa l’istruzione break. Quindi l’esempio precedente utilizzando il break diventerebbe.

.....
int k = 1;

while (true)
{
  if ((k % 2) == 0)
   Console.WriteLine("Il numero " + k + " è pari");
     ++k;

   if (k > 100)
    break;
}

Console.ReadKey();
...

Il contrario del break è continue, che consente di far ritornare il flusso del programma al ciclo corrispondente, ma vediamolo in un esempio che si comprende meglio.

...
int k = 1;

while (true)
{
  if ((k % 2) != 0)
  {
    ++k;

	if (k > 100)
      break;

    continue;
  }

  Console.WriteLine("Il numero " + k + " è pari");

  ++k;

  if (k > 100)
     break;
  }

Console.ReadKey();
...

In questo esempio si nota come il flusso del programma ritorna nella riga del while non appena richiamo il continue, provate a fare il debug riga per riga e ve ne accorgerete. Fate sempre tanti esercizi e guardate sempre il flusso del programma riga per riga per vedere cosa succede, questo è un ottimo metodo per imparare a programmare. Come sempre vi invito ad andare nel nostro forum di programmazione per segnalare qualsiasi problema o chiedere quello che non avete capito.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Di Giampaolo Rossi

Sviluppatore software da oltre 16 anni.

5 commenti

  1. ciao sono uno studente di terza superiore informatica..sto cercando di fare un esercizio e non riesco a risolverlo perchè non riesco a far leggere una stringa..ti scrivo l’esercizio:
    Dopo aver dichiarato tre variabili:int A;bool B;string S;controlla il valore di A:se A=1 controlla il valore di B;se B ha valore “vero” assegna il valore “Uno,vero” a S;se B ha valore falso assegna il valore “Uno,falso” a S,se invece A=2 non controllare il valore di B e assegna il valore “Due,boo” a S,altrimenti assegna il valore “Numero qualsiasi a S in tutti gli altri casi,fuorche il caso in cui A=121 e B=Falso.
    Dovrei risolverlo con la selezione multipla cioè switch e con la selezione semplice quindi con if ed else
    Grazie anticipatamente per l’aiuto ciao!

    1. Se le alternative sono 2 personalmente utilizzo gli if, altrimenti lo switch perché più performante su molti valori. I questo caso poi sono nidificati.

      PS: per questo tipo di problematiche ti consiglio di scrivermi sul forum, dove posso risponderti meglio che qui.

      Ciao

      1. purtroppo non riesco a entrare nel sito del forum che mi hai dato nonostante mi sia iscritto.grazie ciao

        1. Si tratta di un forum standard su cms phpbb3, unica prerogativa che ho messo è che le email per l’iscrizione devono essere .it, questo purtroppo per l’enorme spam sofferto nel passato.

          1. Ho provato in tutti i modi a contattarti ma nel sottomenù scrivi i tuoi messaggi non mi viene permesso. Potresti indirizzarmi passo passo come contattarti?

I commenti sono chiusi.