Over si svoje vedomosti z kapitoly o štandardnom vstupe. Klikni na Áno alebo Nie - tlačidlo sa hneď zafarbí (zelená = správne, červená = nesprávne) a zobrazí sa komentár s vysvetlením. Otázky prechádzaš po jednej pomocou tlačidiel nižšie.
Otázka 1 / 6
Je nasledovný kód platný?
val meno: String = readln()
println("Ahoj, $meno!")
Áno. Funkcia readln() vždy vracia hodnotu typu String, takže priradenie do premennej explicitne typu String je v poriadku.
Objekt System.`in` reprezentuje štandardný vstup, na ktorý sa vieme napojiť napríklad pomocou Scanner(System.`in`).
Áno. in je v Kotline vyhradené kľúčové slovo, preto ho pri prístupe k System.in obaľujeme spätnými apostrofmi: System.`in`.
Je nasledovný kód platný?
import java.util.Scanner
fun main() {
val scanner = Scanner(System.`in`)
val cislo = scanner.nextInt()
println(cislo)
}
Áno. Scanner importujeme z balíka java.util a funkcia nextInt() načíta a rovno pretypuje ďalší token vstupu na Int.
Funkcie next... (napr. nextInt, nextDouble) v triede Scanner pred načítaním automaticky preskočia biele znaky.
Áno. Funkcie next... preskakujú biele znaky a načítajú ďalší token, na rozdiel od nextLine.
Po zadaní čísla 5 a stlačení Enter, načíta premenná riadok v tomto kóde neprázdny reťazec?
val scanner = Scanner(System.`in`)
val cislo = scanner.nextInt()
val riadok = scanner.nextLine()
println("Riadok: '$riadok'")
Nie. nextInt() nedočíta znak konca riadku za číslom, takže nasledujúce nextLine() prečíta iba zvyšok aktuálneho (už takmer prázdneho) riadku - výsledkom je prázdny reťazec ''.
Je bezpečné v jednom programe kombinovať readln() aj Scanner súčasne na čítanie zo štandardného vstupu.
Nie. readln() a Scanner používajú odlišné mechanizmy na čítanie vstupu a ich kombinovanie môže spôsobiť neočakávané správanie (napr. stratu alebo duplicitné čítanie dát).
Tvoje skóre je 0 / 6