Precedenza degli operatori
Fa parte della sezione Logica e flusso del percorso C# di Coddy. Lezione 38 di 66.
La precedenza degli operatori determina l'ordine in cui gli operatori vengono valutati in un'espressione. Comprendere la precedenza è fondamentale per scrivere espressioni logiche corrette.
Guarda questo esempio:
int result = 5 + 3 * 2;Qual è il valore di result? È 11, non 16, perché la moltiplicazione ha una precedenza maggiore dell'addizione.
Ecco un ordine di precedenza semplificato (dal più alto al più basso):
- Parentesi
() - Moltiplicazione/Divisione
* / % - Addizione/Sottrazione
+ -
- Operatori di confronto
< > <= >= - Operatori di uguaglianza
== !=
- AND logico
&& - OR logico
|| - Operatori di assegnazione
= += -=ecc.
Vediamo come si applica:
bool result = 5 > 3 && 10 < 20 || 7 == 8;Per prima cosa, vengono valutati i confronti: 5 > 3 è true, 10 < 20 è true e 7 == 8 è false.
Poi, AND logico: true && true è true.
Infine, OR logico: true || false è true.
Quindi il risultato è true.
Usa le parentesi per rendere il codice più chiaro:
bool result = (5 > 3 && 10 < 20) || (7 == 8);Sfida
FacileCrea un metodo chiamato EvaluateExpression che accetti tre interi (a, b, c) e restituisca un booleano.
Il tuo metodo dovrebbe restituire il risultato di questa espressione:a > b || a == c && b < c
Poi, crea un altro metodo chiamato EvaluateWithParentheses che valuti:(a > b || a == c) && b < c
Il tuo programma dovrebbe leggere tre interi dalla console e stampare i risultati di entrambe le valutazioni su righe separate.
Provalo tu
using System;
class Program
{
public static bool EvaluateExpression(int a, int b, int c)
{
// Scrivi qui il tuo codice
}
public static bool EvaluateWithParentheses(int a, int b, int c)
{
// Scrivi qui il tuo codice
}
static void Main(string[] args)
{
Console.WriteLine("Enter three integers:");
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = int.Parse(Console.ReadLine());
// Chiama i tuoi metodi e stampa i risultati
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Array multidimensionali
Fondamenti degli array 2DDichiarare e inizializzare array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DArray irregolariOperazioni comuni sulle matriciRipasso: array multidimensionali4Tecniche di controllo del flusso
Uscite anticipateClausole di guardiaIstruzioni di salto (goto)Break e continueAppiattire le condizioni annidate7Operatori logici avanzati
Valutazione con cortocircuitoOperatori logici condizionaliPrecedenza degli operatoriRiepilogo - Operatori avanzati2Decisioni avanzate
Condizioni multipleLogica booleana complessaConfronto tra if e switchIstruzioni switch annidateRiepilogo - decisioni avanzate5Gestione delle eccezioni
Nozioni di base su try-catchTipi di eccezioneBlocchi catch multipliLavorare con i fileBlocco finallyUsing vs. try-finallyEccezioni personalizzateRiepilogo - gestione degli errori3Miglioramenti dei cicli
Prestazioni dei cicliIterare strutture complesseOgni tipo di cicloRifattorizzare i cicliRiepilogo - Cicli ottimizzati6Gestione dei valori null
Fondamenti dei riferimenti nullTipi valore nullableSchemi di controllo dei valori nullProgrammazione difensivaRiepilogo: sicurezza rispetto ai valori nullEsercitati da solo: Compilatore C# online