Operatori logici Parte 3
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 26 di 93.
La precedenza controlla il modo in cui viene raggruppata un’espressione. ! ha la precedenza più alta, seguito da && e poi da ||. Quindi a || b && c significa a || (b && c).
val a = true
val b = false
val c = false
println(a || (b && c)) // true
println((a || b) && c) // falseIl raggruppamento è diverso dall’ordine di valutazione. || si interrompe quando il suo operando sinistro è true, mentre && si interrompe quando il suo operando sinistro è false. Nella prima espressione qui sopra, b && c non viene mai valutato perché a è già true.
Le parentesi possono modificare il raggruppamento o renderlo esplicito. Valuta prima l’operando sinistro, poi determina se è necessario l’operando destro.
Sfida
FacileScrivi una funzione canAccessFeature che accetta isAdmin, isPremium e hasTrialActive e restituisce se un utente può accedere a una funzionalità premium.
Un utente può accedere alla funzionalità se è un amministratore, oppure se è sia un membro premium sia ha una prova attiva.
Usa le parentesi per assicurarti che l’ordine di valutazione sia corretto: la condizione && deve essere raggruppata prima di essere combinata con ||.
Parametri:
isAdmin(Boolean): indica se l’utente è un amministratoreisPremium(Boolean): indica se l’utente ha un abbonamento premiumhasTrialActive(Boolean): indica se l’utente ha un periodo di prova attivo
Valore restituito: true se l’utente può accedere alla funzionalità, false altrimenti (Boolean)
Il driver fornito chiama la tua funzione e stampa il valore restituito. Mantieni la firma della funzione e non aggiungere una funzione main.
Provalo tu
fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
// Scrivi il codice qui
}
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 moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin