Как сделать цикл, как упомянуто ниже в языке программирования Kotlin?
Как я могу сделать это в Kotlin, используя для цикла?
for (double i = 0; i < 10.0; i += 0.25) {
System.out.println("value is:" + i);
}
3 ответа
Вы должны использовать плагин Intellij для преобразования Java-кода для Kotlin. Это довольно аккуратно (если у вас нет сложного кода, использующего лямбда-выражения). Это то, к чему он конвертируется для вашего вопроса:
var i = 0.0
while (i < 10.0) {
println("value is:" + i)
i += 0.25
}
Вот код Котлина, эквивалентный циклу for.
var i = 0.0
while (i < 10.0)
{
println("value is:" + i)
i += 1.0
}
Kotlin for loop поддерживает только итерации массивов. Пожалуйста, обратитесь https://kotlinlang.org/docs/reference/control-flow.html
Это достижимо по-другому
var length:Double = 10.0
var increment:Double = 0.25
for (index in Array((length/increment).toInt(), { i -> (i * increment) }))
println(index)
Я не уверен, что это новый синтаксис, но для перебора значений можно использовать натуральные числа.
(0..(10*4)).map {
it / 4.0 as Double
}.forEach {
println(it)
}
Я избегаю итераций с плавающей запятой IEEE 754, так как это потенциально может вызвать ошибки. В этом случае это может быть хорошо, но может и не быть в зависимости от среды, контекста и языка. Лучше избегать использования чисел с плавающей запятой, за исключением случаев, когда ожидается, что числа будут иметь произвольную точность, т. Е. Используются действительные числа или непрерывность.
Этот синтаксис также можно использовать в цикле for, если вам не нужно сохранять результат. Однако следует избегать циклов for по большей части, если вам нужна неизменяемость (что вам и нужно).
for (i in 0..10) {
println("Project Loom is a lie! $i")
}