Wikia

D Programming

Osservati speciali Ultime modifiche

Il strutture condizionali

Indice

Introduzione Modifica

Iniziamo a parlare di strutture condizionali. Le strutture condizionali permettono di far eseguire una porzione di codice invece che un' altra, il costrutto if è un esempio di struttura condizionale, si occupa di controllare una condizione, se è true, esegue il codice al suo interno, altrimenti passa oltre.

Tabella operatori di comparazione Modifica

Riporto quì sotto una tabella che sarà utile nei paragrafi che seguono, questi sono gli operatori di comparazione utilizzati nel costrutto if:

Operatore Decrizione
== Operatore di uguaglianza
> Maggiore di...
< Minore di...
>= Maggiore o uguale di...
<= Minore o uguale di..
!= Diverso di...
IMPORTANTE!!!
Per verificare un uguaglianza si usa l'operatore '==' e NON '=', 
== -> CONFRONTO DI UN UGUAGLIANZA
=  -> ASSEGNAMENTO

Il costrutto if semplice Modifica

Nel caso più semplice la sintassi è la seguente:

 if(condizione)
 {
    /* Esegue il codice all'interno delle graffe se la condizione è stata soddisfatta
     * quindi restituisce true o un numero maggiore di 0
     */
 }


Un esempio molto semplice sull'utilizzo del costrutto if nella sua forma più semplice può essere il seguente:

import std.stdio;
import std.conv;   	//Funzioni per le conversioni
import std.cstream;	//Accesso allo stream di input e output della console (din e dout)
 
int main(string[] args)
{
  writef("Inserisci un numero: ");
 
  //Leggo lo stream di input e converte il contenuto in un int        
  int num = std.conv.toInt(din.readLine());
 
  if(num < 10) //se 'num' è minore di 10
  {
    writefln("Il numero %d è minore di 10", num);
  }
 
  if(num > 10) //se 'num' è maggiore di 10
  {
    writefln("Il numero %d è maggiore di 10", num);
  }
 
  if(num == 10)//se 'num' è 10
  {
    writefln("Il numero è 10");
  }
 
  return 0;
}

Il costrutto if-else Modifica

Nel costrutto if-else, se la condizione dell'if non è true, verranno eseguite le istruzioni che stanno nell'else, per rendere tutto più chiaro ecco un esempio:

import std.stdio;
import std.conv;   	//Funzioni per le conversioni
import std.cstream;	//Accesso allo stream di input e output della console (din e dout)
 
int main(string[] args)
{
  writef("Inserisci un numero: ");
 
  //Leggo lo stream di input e converte il contenuto in un int        
  int num = std.conv.toInt(din.readLine());
 
  if(num < 10) //se 'num' è minore di 10...
  {
    writefln("Il numero %d è minore di 10", num);
  }
 
  else //...altrimenti...
  {
    writefln("Il numero è maggiore di 10");
  }
 
  return 0;
}

Oppure in questo modo:

import std.stdio;
import std.conv;   	//Funzioni per le conversioni
import std.cstream;	//Accesso allo stream di input e output della console (din e dout)
 
int main(string[] args)
{
  writef("Inserisci un numero: ");
 
  //Leggo lo stream di input e converte il contenuto in un int        
  int num = std.conv.toInt(din.readLine());
 
  if(num < 10) //se 'num' è minore di 10...
  {
    writefln("Il numero %d è minore di 10", num);
  }
 
  else if(num > 10) //...altrimenti, se 'num' è maggiore di 10...
  {
    writefln("Il numero %d è maggiore di 10", num);
  }
 
  else //...altrimenti, se 'num' non è: nè minore, nè maggiore di 10 (quindi uguale)...
  {
    writefln("Il numero è 10");
  }
 
  return 0;
}


Una questione di prestazioni Modifica

La domanda scorge spontanea: Perchè usare if-else e non if e basta??

La risposta presto data: il vantaggio di utilizzare if-else rispetto a if, sta nelle performance, con if verranno controllati anche tutti gli altri if che seguono. con if-else, se almeno uno di essi sarà true, gli altri saranno saltati completamente, un esempio pratico spiega questo concetto:

if(num < 10) 
{
  //VERRA' SEMPRE CONTROLLATO
  writefln("Il numero %d è minore di 10", num);
}
 
if(num > 10) 
{
  //VERRA' SEMPRE CONTROLLATO
  writefln("Il numero %d è maggiore di 10", num);
}
 
if(num == 10)
{
  //VERRA' SEMPRE CONTROLLATO
  writefln("Il numero è 10");
}

Il seguente codice ha lo stesso significato, ma è più veloce:

if(num < 10) //se il numero è minore di 10...
{
  //SE E' TRUE VERRANNO ECLUSI GLI ALTRI ELSE-IF
  writefln("Il numero %d è minore di 10", num);
}
 
else if(num > 10) //...altrimenti, se il numero è maggiore di 10...
{
  //SE E' TRUE VERRANNO ECLUSI GLI ALTRI ELSE-IF
  writefln("Il numero %d è maggiore di 10", num);
}
 
else //...altrimenti, se il numero non è NE' maggiore di 10, NE' minore di 10 (quindi uguale)
{
  //SE E' TRUE VERRANNO ECLUSI GLI ALTRI ELSE-IF
  writefln("Il numero è 10");
}

In conclusione: se bisogna fare una serie di controlli è consigliato if-else

Pagine su D Programming

Crea una pagina
25pagine in
questa wiki
Advertisement | Your ad here

Latest Photos

Carica un'immagine
10immagini in questa wiki
Vedi altre >

Attività recenti della Wiki

Vedi >

Nella rete di Wikia

Wiki a caso