Operatori logici Parte 3
Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 23 di 75.
Quando controlla più condizioni, il computer smette di verificarle non appena conosce la risposta finale (questa è chiamata 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, 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.
Sfida
PrincipianteCreiamo un programma per decidere se è una buona giornata per produrre energia con i pannelli solari
Inizializza queste variabili:
is_sunnycon il valore truewind_speedcon il valore 5.4temperaturecon il valore 23solar_panel_outputcon il valore 9is_cloudycon 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 del pannello solare è inferiore a 15
- La temperatura è superiore a 20 OR non ci sono nuvole
Provalo tu
fn main() {
// Inicializa las variables
// Reemplaza los valores provisionales de abajo por los de la tarea
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;
// La expresión lógica completa
// Reemplaza el valor provisional de abajo por la condición completa
let result: bool = false;
// No borres las líneas de abajo
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!("\\nFinal result - Good day for solar energy production: {}", result);
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Input/output di base
Stampare sulla consoleLeggere l'input dell'utenteRiepilogo - Fino a 120Riepilogo - Vero o falso5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Ripasso - Logica sempliceOperatori logici Parte 311Funzioni
Dichiarare le funzioniParametri e argomentiValori restituitiValori restituiti multipliRiepilogo - funzione SigmaRiepilogo - funzione di validazione14Iterare sugli array
Guida ai rangeCiclo for avanzatoPrestito nel cicloOperazioni comuni sugli array3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneInferenza del tipoRipasso - Inizializzare le variabiliConversione di tipo9Cicli
Ciclo for su sequenzeCiclo whileBreakContinueCiclo annidatoEtichette dei cicliCiclo infinitoRiepilogo - Input dinamico12Fondamenti degli array
Dichiarare gli arrayArray come parametroAccedere agli elementiModificare gli arrayRiepilogo - Stampare un array in modo leggibile15Operazioni sulle stringhe
Metodi delle stringheMacro format!Conversione delle stringheRipasso - FormattazioneEsercitati da solo: Compilatore Rust online