Menu
CoddyTech

Operatori logici Parte 3

Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 23 di 75.

Quando verifica più condizioni, il computer smette di controllarle non appena conosce la risposta finale (questa operazione si chiama valutazione con cortocircuito).

Per esempio:

let x: i32 = 0;
let y: i32 = 5;
let result: bool = x != 0 && y / x > 2;

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

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

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

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

let a: i32 = 0;
let b: i32 = 2;
let c: i32 = 3;
let d: i32 = 5;
let result: bool = (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 la produzione di energia con i pannelli solari

Inizializza queste variabili:

  • is_sunny con il valore true
  • wind_speed con il valore 5.4
  • temperature con il valore 23
  • solar_panel_output con il valore 9
  • is_cloudy con il valore false

Crea un'unica espressione logica che verifica 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 OPPURE non ci sono nuvole

Provalo tu

fn main() {
    // Inizializza le variabili
    // Sostituisci i valori segnaposto qui sotto con quelli indicati nell'esercizio
    let is_sunny: bool = false;
    let wind_speed: f64 = 99.0;
    let temperature: i32 = 0;
    let solar_panel_output: i32 = 99;
    let is_cloudy: bool = true;
    
    // L'espressione logica completa
    // Sostituisci il segnaposto qui sotto con la condizione completa
    let result: bool = false;
    
    // Non eliminare le righe qui sotto
    println!("Checking conditions for solar energy production...");
    println!("1. Is it sunny? {}", is_sunny);
    println!("2. Is wind speed safe? {}", (wind_speed < 10.0));
    println!("3. Can panels produce more? {}", (solar_panel_output < 15));
    println!("4. Is temperature good OR no clouds? {}", (temperature > 20 || !is_cloudy));
    println!("Final 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 Rust online