Menu
Coddy logo textTech

Operatori logici Parte 3

Fa parte della sezione Fondamenti del percorso C# di Coddy. Lezione 24 di 69.

Quando controlla più condizioni, il computer smette di verificarle non appena conosce la risposta finale (questa si chiama valutazione cortocircuitata).

Per esempio:

int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;

Qui x è uguale a 0, quindi non valuterà y / x > 2. Se invertissimo l'ordine:

bool result = y / x > 2 && x != 0;

Questo causerà un errore perché y verrà diviso per 0, operazione non consentita in matematica.

Questa tecnica viene utilizzata per ottimizzare la valutazione delle espressioni logiche. Per esempio:

int a = 0;
int b = 2;
int c = 3;
int d = 5;
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);

In questo esempio b < 2 e d < 10 non verranno valutati perché a > 0 e c < -5 sono entrambi falsi.

challenge icon

Sfida

Principiante

Creiamo un programma per decidere se è una buona giornata per produrre energia con i pannelli solari

Inizializza queste variabili:

  • isSunny con il valore true
  • windSpeed con il valore 5.4
  • temperature con il valore 23
  • solarPanelOutput con il valore 9
  • isCloudy con il valore false

Crea un'unica espressione logica che verifichi TUTTE queste condizioni:

  • C'è il sole
  • La velocità del vento è inferiore a 10
  • La produzione dei pannelli solari è inferiore a 15
  • La temperatura è superiore a 20 OR non ci sono nuvole

Provalo tu

using System;

public class Program {
    public static void Main(string[] args) {
        // Inizializza le variabili
        // Sostituisci ogni valore segnaposto con il valore descritto nell'esercizio
        bool isSunny = false;
        double windSpeed = 0.0;
        int temperature = 0;
        int solarPanelOutput = 0;
        bool isCloudy = true;
        
        // L'espressione logica completa
        // Sostituisci il segnaposto qui sotto con l'espressione descritta nell'esercizio
        bool result = false;
        
        // Non eliminare le righe qui sotto
        Console.WriteLine("Checking conditions for solar energy production...");
        Console.WriteLine("1. Is it sunny? " + isSunny);
        Console.WriteLine("2. Is wind speed safe? " + (windSpeed < 10));
        Console.WriteLine("3. Can panels produce more? " + (solarPanelOutput < 15));
        Console.WriteLine("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
        Console.WriteLine("\nFinal result - Good day for solar energy production: " + result);
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore C# online