1.8 Test - Štandardný vstup

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