Esercizio - Stampare valori letterali

Completato

In questo esercizio verranno stampati messaggi contenenti altri tipi di dati e verranno illustrati i motivi per cui i tipi di dati sono così importanti in C#.

Che cos'è un valore letterale?

Un valore letterale è un valore costante che non cambia mai. In precedenza, è stata visualizzata una stringa letterale nella console di output. In altre parole, si voleva letteralmente che la stringa di caratteri alfanumerici H, e, l, l, o e così via, venisse visualizzata nella console di output.

Usare il tipo di dati string ogni volta che sono presenti parole, frasi o dati alfanumerici per la presentazione, non per il calcolo. Quali altri tipi di dati letterali è possibile stampare nell'output?

Esercizio - Stampare tipi di dati letterali diversi

Sono disponibili molti tipi di dati in C#. Tuttavia, come principiante è sufficiente conoscere solo cinque o sei tipi di dati, poiché coprono la maggior parte degli scenari. Si vedrà ora come visualizzare un'istanza letterale del tipo di dati nell'output.

Nota

È possibile notare quando si inizia a lavorare nella finestra del codice che alla sintassi vengono applicati colori diversi per indicare parole chiave, operatori, tipi di dati e altro ancora. Iniziare a notare e distinguere i colori. Ciò può risultare utile per individuare gli errori di sintassi durante l'immissione dei caratteri e per comprendere il codice in modo più efficace.

Usare valori letterali carattere

Per stampare solo un singolo carattere alfanumerico sullo schermo, è possibile creare un valore letterale char racchiudendo un carattere alfanumerico tra virgolette singole. Il termine char è l'abbreviazione di character. In C# questo tipo di dati è ufficialmente denominato "char", ma spesso definito "carattere".

  1. Aggiungere la riga di codice seguente nell'editor di codice:

    Console.WriteLine('b');
    
  2. Osservare il codice immesso.

    Si noti che la lettera b è racchiusa tra virgolette 'b' singole. Le virgolette singole creano un valore letterale carattere. Tenere presente che l'uso di virgolette doppie crea un tipo di dati string.

  3. Premere il pulsante verde Esegui per eseguire il codice. Nella finestra di output verrà visualizzato il risultato seguente:

    b
    

Se si immette il codice seguente:

Console.WriteLine('Hello World!');

Viene visualizzato l'errore seguente:

(1,19): error CS1012: Too many characters in character literal

Notare le virgolette singole che racchiudono Hello World!. Quando si usano le virgolette singole, il compilatore C# si aspetta un singolo carattere. Tuttavia, in questo caso, è stata usata la sintassi dei valori letterali di tipo carattere, ma sono stati forniti invece 12 caratteri.

Analogamente al tipo di dati string, si usa il tipo char in presenza di un singolo carattere alfanumerico per la presentazione (non per il calcolo).

Usare valori letterali integer

Se si vuole visualizzare un numero intero numerico (senza frazioni) nella console di output, è possibile usare un valore letterale int. Il termine int è l'abbreviazione di integer, o intero, un concetto probabilmente noto dalla matematica. In C# questo tipo di dati è ufficialmente denominato "int", ma spesso definito "integer". Un valore letterale int non richiede altri operatori come string o char.

  1. Aggiungere la riga di codice seguente nell'editor di codice:

    Console.WriteLine(123);
    
  2. Premere il pulsante verde Esegui per eseguire il codice. Nella console di output verrà visualizzato il risultato seguente:

    123
    

Usare i valori letterali a virgola mobile

Un numero a virgola mobile è un numero che contiene un decimale, ad esempio 3,14159. C# supporta tre tipi di dati per rappresentare numeri decimali: float, double e decimal. Ogni tipo supporta diversi gradi di precisione.

Float Type    Precision
----------------------------
float         ~6-9 digits
double        ~15-17 digits
decimal        28-29 digits

In questo caso, la precisione riflette il numero di cifre dopo il decimale che sono accurate.

  1. Aggiungere la riga di codice seguente nell'editor di codice:

    Console.WriteLine(0.25F);
    

    Per creare un valore letterale float, aggiungere la lettera F dopo il numero. In questo contesto, la lettera F è nota come suffisso del valore letterale. Il suffisso del valore letterale indica al compilatore che si vuole usare un valore di tipo float. È possibile usare la lettera f minuscola o la F maiuscola come suffisso del valore letterale per un tipo float.

  2. Premere il pulsante verde Esegui per eseguire il codice. Nella console di output verrà visualizzato il risultato seguente:

    0.25
    

    Si noti che il tipo di dati float è il meno preciso, quindi è consigliabile usare questo tipo di dati per i valori frazionari fissi per evitare errori di calcolo imprevisti.

  3. Aggiungere la riga di codice seguente nell'editor di codice:

    Console.WriteLine(2.625);
    

    Per creare un valore letterale double, immettere un numero decimale. Il compilatore usa per impostazione predefinita un valore letterale double quando viene immesso un numero decimale senza un suffisso del valore letterale.

  4. Premere il pulsante verde Esegui per eseguire il codice. Nella finestra di output verrà visualizzato il risultato seguente:

    2.625
    
  5. Aggiungere la riga di codice seguente nell'editor di codice:

    Console.WriteLine(12.39816m);
    

    Per creare un valore letterale decimale, aggiungere la lettera m dopo il numero. In questo contesto, la lettera m è nota come suffisso del valore letterale. Il suffisso del valore letterale indica al compilatore che si vuole usare un valore di tipo decimal. È possibile usare la lettera m minuscola o la M maiuscola come suffisso del valore letterale per un tipo decimal.

  6. Premere il pulsante verde Esegui per eseguire il codice. Nella console di output verrà visualizzato il risultato seguente:

    12.39816
    

Usare valori letterali booleani

Se si vuole stampare un valore che rappresenta true o false, è possibile usare un valore letterale bool.

Il termine bool è l'abbreviazione di booleano. In C# i dati di questo tipo sono definiti ufficialmente "bool", ma spesso gli sviluppatori usano il termine "booleano".

  1. Aggiungere le righe di codice seguenti nell'editor di codice:

    Console.WriteLine(true);
    Console.WriteLine(false);
    
  2. Premere il pulsante verde Esegui per eseguire il codice. Nella console di output verrà visualizzato il risultato seguente:

    True
    False
    

I valori letterali bool rappresentano il concetto di vero e falso. I valori bool verranno usati ampiamente quando si inizia ad aggiungere la logica decisionale alle applicazioni. Le espressioni verranno valutate per verificare se sono vere o false.

Importanza dei tipi di dati

I tipi di dati svolgono un ruolo cruciale in C#. In realtà, l'enfasi sui tipi di dati è una delle principali caratteristiche distintive di C#, rispetto ad altri linguaggi come JavaScript. I progettisti di C# credevano di poter aiutare gli sviluppatori a evitare bug software comuni tramite l'imposizione dei tipi di dati. Questo concetto risulterà più chiaro man mano che si approfondisce la conoscenza di C#.

I tipi di dati definiscono le funzionalità

In precedenza è stato sottolineato che i tipi string e char vengono usati per la presentazione e non per il calcolo. Se è necessario eseguire un'operazione matematica su valori numerici, è necessario usare un tipo int o decimal. In presenza di dati usati solo a scopo di presentazione o di manipolazione del testo, è necessario usare un tipo di dati string o char.

Si supponga di dover raccogliere dati da un utente, ad esempio il numero di telefono o il codice postale. A seconda del paese/area geografica in cui si risiede, i dati potrebbero essere costituiti solo da caratteri numerici. Tuttavia, poiché è raro che si eseguano calcoli matematici sui numeri di telefono e i codici postali, è preferibile usare un tipo di dati string per lavorare a questi dati.

Lo stesso vale per bool. Se è necessario usare le parole "true" e "false" nell'applicazione, si userà il tipo di dati string. Tuttavia, se è necessario lavorare con il concetto di true o false quando si esegue una valutazione, si userà il tipo bool.

È importante tenere presente che questi valori possono sembrare uguali agli equivalenti valori letterali stringa. In altre parole, si potrebbe pensare che queste istruzioni siano uguali:

Console.WriteLine("123");
Console.WriteLine(123);

Console.WriteLine("true");
Console.WriteLine(true);

Tuttavia, è solo l'output visualizzato che sembra essere simile. Il fatto è che il tipo di operazioni che è possibile eseguire con il tipo int o bool sarà diverso rispetto all'equivalente string.

Riepilogo

La lezione principale da ricordare è che sono disponibili molti tipi di dati, ma per il momento ci si concentrerà solo su alcuni di essi:

  • string per parole, frasi o qualsiasi dato alfanumerico per la presentazione, non per il calcolo
  • char per un singolo carattere alfanumerico
  • int per un numero intero
  • decimal per un numero con una componente frazionaria
  • bool per un valore true/false