Как сделать цикл, как упомянуто ниже в языке программирования 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")
}
Другие вопросы по тегам