Esercizio - Stampare valori letterali
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".
Aggiungere la riga di codice seguente nell'editor di codice:
Console.WriteLine('b');
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 datistring
.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
.
Aggiungere la riga di codice seguente nell'editor di codice:
Console.WriteLine(123);
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.
Aggiungere la riga di codice seguente nell'editor di codice:
Console.WriteLine(0.25F);
Per creare un valore letterale
float
, aggiungere la letteraF
dopo il numero. In questo contesto, la letteraF
è nota come suffisso del valore letterale. Il suffisso del valore letterale indica al compilatore che si vuole usare un valore di tipofloat
. È possibile usare la letteraf
minuscola o laF
maiuscola come suffisso del valore letterale per un tipofloat
.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.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 letteraledouble
quando viene immesso un numero decimale senza un suffisso del valore letterale.Premere il pulsante verde Esegui per eseguire il codice. Nella finestra di output verrà visualizzato il risultato seguente:
2.625
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 letteram
è nota come suffisso del valore letterale. Il suffisso del valore letterale indica al compilatore che si vuole usare un valore di tipodecimal
. È possibile usare la letteram
minuscola o laM
maiuscola come suffisso del valore letterale per un tipodecimal
.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".
Aggiungere le righe di codice seguenti nell'editor di codice:
Console.WriteLine(true); Console.WriteLine(false);
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 calcolochar
per un singolo carattere alfanumericoint
per un numero interodecimal
per un numero con una componente frazionariabool
per un valoretrue
/false