Operatory logiczne, część 3
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 26 z 93.
Priorytet określa sposób grupowania wyrażenia. ! wiąże najsilniej, następnie &&, a potem ||. Zatem a || b && c oznacza a || (b && c).
val a = true
val b = false
val c = false
println(a || (b && c)) // true
println((a || b) && c) // falseGrupowanie różni się od kolejności ewaluacji. || przestaje działać, gdy jego lewy operand ma wartość true, a && — gdy jego lewy operand ma wartość false. W pierwszym powyższym wyrażeniu b && c nigdy nie jest ewaluowane, ponieważ a ma już wartość true.
Nawiasy mogą zmienić grupowanie lub je uściślić. Najpierw oblicz lewy operand, a następnie ustal, czy potrzebny jest prawy operand.
Wyzwanie
ŁatwyNapisz funkcję canAccessFeature, która przyjmuje isAdmin, isPremium i hasTrialActive, a następnie zwraca informację, czy użytkownik może uzyskać dostęp do funkcji premium.
Użytkownik może uzyskać dostęp do tej funkcji, jeśli jest administratorem lub jeśli jest zarówno użytkownikiem premium, jak i ma aktywny okres próbny.
Użyj nawiasów, aby zapewnić prawidłową kolejność obliczeń: warunek && powinien być zgrupowany przed połączeniem go z ||.
Parametry:
isAdmin(Boolean): Czy użytkownik jest administratoremisPremium(Boolean): Czy użytkownik ma subskrypcję premiumhasTrialActive(Boolean): Czy użytkownik ma aktywny okres próbny
Zwraca: true, jeśli użytkownik może uzyskać dostęp do funkcji, w przeciwnym razie false (Boolean)
Dostarczony sterownik wywołuje Twoją funkcję i wyświetla zwróconą przez nią wartość. Zachowaj sygnaturę funkcji i nie dodawaj funkcji main.
Spróbuj swoich sił
fun canAccessFeature(isAdmin: Boolean, isPremium: Boolean, hasTrialActive: Boolean): Boolean {
// Wpisz kod tutaj
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 1
Operatory arytmetyczneOperator moduloPrzypisanie z operatoremOperatory porównaniaPowtórka – proste działania matematyczne7Podstawowe wejście/wyjście
Funkcja printlnSzablony ciągów znakówWczytywanie danych przez ReadLineKonwersja typówPowtórka — lata do emeryturyPowtórka — prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneArgumenty nazwaneWartości domyślneFunkcje z pojedynczym wyrażeniemPowtórka – funkcja SigmaPowtórka – funkcja walidująca2Zmienne
Val a VarWnioskowanie o typieLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPowtórzenie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Operatory logiczne, część 3Operator trójargumentowy z wyrażeniem ifPowtórka — prosta logika8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Obsługa wartości null
Czym jest bezpieczeństwo nullTypy dopuszczające nullOperator bezpiecznego wywołaniaOperator ElvisPodstawy wyzwania z funkcjamiAsercja wartości niebędącej nullPodsumowanie — bezpieczny dostęp6Podejmowanie decyzji
Instrukcja ifIf - elseIf jako wyrażenieWyrażenie whenWhen z zakresamiPowtórka — prosty kalkulator9Pętle
Pętla forPętla whilePętla do-whileBreakContinueZakresy w pętlachPętla zagnieżdżonaPowtórka – silniaPowtórka – dynamiczne wprowadzanie danychPoćwicz samodzielnie: Edytor online Kotlin