- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
import java.io.File
import java.io.FileReader
fun main(args: Array<String>) {
val text = getText("Input line")
val fileName = getText("Input file name")
val mode = getInt("Input mode: 1 for rewrite, 2 for append", 1, 2)
doAction(mode, text, fileName)
}
fun doAction(mode: Int, text : String, fileName : String) {
val file = File(fileName)
when(mode) {
1 -> file.writeText(text)
2 -> file.appendText(text)
}
}
fun getInt(message: String, min : Int, max: Int) : Int {
var buffer : Int?
do {
print(message)
buffer = readLine()?.toIntOrNull()
}
while (buffer == null || buffer !in min..max)
return buffer
}
fun getText(message : String) : String {
print(message)
return readLine() ?: ""
}
nemyx 29.12.2018 04:09 # +1
Мне не нравится getInt. Если ввод не проходит валидацию, снова выводится приглашение к вводу, но пользователю не сообщают, в чём он неправ. Это может раздражать пользователей, не знакомых с логикой работы программы.
В идеале пользователь должен догадаться, чего от него хотят, не подглядывая в исходный код программы.
Tryff 29.12.2018 08:00 # 0
KitKat 29.12.2018 13:07 # −102
6A9lHuCT 01.01.2019 01:00 # −103