Categories: C# (sharp)

Strutture di Controllo in C#

Nell’articolo precedente avevamo accennato alla più famosa e semplice struttura di controllo nei linguaggi di programmazione if … In particolare occorre precisare che dopo il comando di una struttura di controllo le parentesi graffe vanno messe per obbligo solo se all’interno di esso ci sono più righe di codice, per esempio:

if (condizione vera)
   fai qualcosa….

if (condizione vera)
{
      fai qualcosa…
      fai qualcos’altro….
}

Non si possono inoltre studiare le condizioni senza sapere gli operatori sia metematici, relazionali e logici, iniziamo con i primi:

  • = assegnazione
  • + addizione
  • – sottrazione
  • * moltiplicazione
  • / divisione
  • % modulo che ritorna il resto della divisione del primo per il secondo fattore

esiste anche la possibilità di abbreviare le operazioni concatenado gli operatori aritmetici, che è la classica prerogativa del C.

int k = 10; // dichiarazione della variabile k come intera ed assegnazione del valore 10
k += 12; // Addizione di 12 alla variabile k, operazione che espansa sarebbe k = k + 12
k++; // Addizione di 1 alla variabile k, operazione che espansa sarebbe k += 1 e k = k + 1

Noterete quindi quanto si possono razionalizzare le operazioni. Passiamo agli operatori relazionali:

  • == uguale
  • != diversa
  • > maggiore
  • >= maggiore-uguale
  • < minore
  • <= minore-uguale

Gli operatori relazionali possono essere concatenati con gli operatori logici:

  • && – and logico se entrambe le relazioni sono vere
  • || – or logico se una delle 2 relazioni sono vere

Facciamo quindi qualche esempio:

using System;

public class Corso
{
   static void Main(string[] args)
   {
     int x, y;

     x = y = 12;
     x *= 7;
     y += 18;
     y /= 2;
     x -= 12;

     if (x > 0 && y > 0)
       Console.WriteLine("Entrambi i numeri sono maggiori di zero\n");
     else
       Console.WriteLine("Uno dei due è minore di zero\n");

     if (x > 0 || y > 0)
       Console.WriteLine("Uno dei due è maggiore di zero\n");
     else
       Console.WriteLine("Nessuno dei due è maggiore di zero\n");

     if ((x % 2) == 0)
       Console.WriteLine("La X è un numero pari\n");
     else
       Console.WriteLine("La X è un numero dispari\n");

     if ((y % 2) == 0)
       Console.WriteLine("La Y è un numero pari\n");
     else
       Console.WriteLine("La Y è un numero dispari\n");

     Console.ReadKey();
   }
}

Penso che non ci sia bisogno di spiegazioni, se casomai non avete compreso bene potete formulare delle domande nel forum. Prima di concludere vediamo brevemente il primo ciclo, il for:

for (int i = 0; i < 10; i++)
Console.WriteLine(“Questa è la riga: ” + (i + 1));

Notate che posso dichiarare la variabile contatore da 0 a 9 all’interno del ciclo for, ma sarà visibile solo al suo interno e non al di fuori del ciclo, ma questo lo vedremo in futuro. Per il ciclo for serve quindi una variabile contatore con il valore iniziale, una condizione fino a quando il ciclo deve avvenire ed infine di quanto la variabile contatore deve essere modificata. Con quello che abbiamo studiato finora quindi sarà possibile calcolare il fattoriale di un numero, provate a farlo voi stessi senza guardare e poi confrontate come è stato sviluppato:

using System;

public class Corso
{
   static void Main(string[] args)
   {
     int k = 6;
     int iFatt = 1;

     for (int i = k; i > 1; i--)
       iFatt *= i;

     Console.WriteLine("Il fattoriale di " + k + " è " + iFatt);
       Console.ReadKey();
   }
}

Notare che ho inizializzato la risultante iFatt ( i..Fatt perchè è di tipo intero ) a 1 perchè se fosse stato zero avrei ottenuto zero perchè le divisioni per zero sono sempre zero. Faccio terminare il ciclo fino al valore 2 perchè le moltiplicazioni per 1 non cambiano il risultato. Come sempre se volete maggiori informazioni potete postare una domanda sul nostro forum di informatica.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi

Recent Posts

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

1 anno ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

1 anno ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

3 anni ago

Come Eliminare i Files in Windows

Vediamo come eliminare i files direttamente da Windows senza utilizzare il cestino. Continua a leggere→

4 anni ago