Logische Operatoren Teil 3
Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 26 von 93.
Die Priorität bestimmt, wie ein Ausdruck gruppiert wird. ! bindet am stärksten, gefolgt von && und dann ||. Daher bedeutet a || b && c dasselbe wie a || (b && c).
val a = true
val b = false
val c = false
println(a || (b && c)) // true
println((a || b) && c) // falseDie Gruppierung unterscheidet sich von der Auswertungsreihenfolge. || bricht ab, wenn sein linker Operand wahr ist, und && bricht ab, wenn sein linker Operand falsch ist. Im ersten Ausdruck oben wird b && c nie ausgewertet, weil a bereits wahr ist.
Klammern können die Gruppierung ändern oder sie explizit machen. Werte zuerst den linken Operanden aus und bestimme dann, ob der rechte Operand benötigt wird.
Aufgabe
EinfachSchreibe eine Funktion canAccessFeature, die isAdmin, isPremium und hasTrialActive übernimmt und zurückgibt, ob ein Benutzer auf eine Premiumfunktion zugreifen kann.
Ein Benutzer kann auf die Funktion zugreifen, wenn er Administrator ist, oder wenn er sowohl Premium-Mitglied ist als auch eine aktive Testphase hat.
Verwende Klammern, um die korrekte Auswertungsreihenfolge sicherzustellen: Die Bedingung && sollte zusammen gruppiert werden, bevor sie mit || kombiniert wird.
Parameter:
isAdmin(Boolean): Gibt an, ob der Benutzer Administrator istisPremium(Boolean): Gibt an, ob der Benutzer ein Premium-Abonnement hathasTrialActive(Boolean): Gibt an, ob der Benutzer eine aktive Testphase hat
Rückgabe: true, wenn der Benutzer auf die Funktion zugreifen kann, andernfalls false (Boolean)
Der bereitgestellte Treiber ruft deine Funktion auf und gibt ihren Rückgabewert aus. Behalte die Funktionssignatur bei und füge keine main-Funktion hinzu.
Probier es selbst
fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
// Schreibe den Code hier
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground