Мне нравится использовать REPL в intelliJ для кодирования проблем, которые вы могли бы найти в коде сигнала. В настоящее время у меня есть версия:
IntelliJ IDEA 2019.1.3 (Ultimate Edition)
Build #IU-191.7479.19, built on May 27, 2019
JRE: 1.8.0_202-release-1483-b58 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.4
Меня всегда смущал тот факт, что при запуске любого из этих файлов с нулями первые 5-9 строк, на которые я пытаюсь напечатать вывод, просто не существуют.
Ниже приведен пример программы, которая выводит пирамиду X на консоль
fun createPyramid(height: Int, drawChar: String = "X") {
// repeat(9) {
// println("blank")
// }
for (i in 1 until height) {
val blank = " ".repeat(height - i)
val row = blank + drawChar.repeat(i * 2 - 1)
println(row)
}
}
createPyramid(11)
Если я закомментировал повторяющийся блок, мой вывод будет выглядеть так:
Если я раскомментирую повтор, я получу вывод, похожий на:
Действительно запутанная часть этой ситуации - количество строк, которые кажутся случайными, и есть несоответствия в том, как это работает.
Если я делаю repeat(9)
, я обычно получаю 1 фактически распечатанный "пробел"
Если я сделаю repeat(8)
большую часть времени, он фактически не выдаст первую ожидаемую букву "Х" из пирамиды.