2017-07-21 18 views
-4

Comment puis-je le faire en kotlin en utilisant pour la boucle?Comment faire une boucle comme mentionné ci-dessous dans le langage de programmation kotlin?

for (double i = 0; i < 10.0; i += 0.25) { 
    System.out.println("value is:" + i); 
} 
+4

Il est déconseillé de faire cela dans n'importe quelle langue utilisant un type de virgule flottante binaire. Utilisez un type intégral et divisez par 4 au point d'utilisation. – Bathsheba

+0

Je ne pense pas que vous puissiez le faire dans 'for loop 'de kotlin, puisque le docs dit" pour itérer à travers tout ce qui fournit un itérateur ": https://kotlinlang.org/docs/reference/control-flow.html# for-loops ... Utilisez 'while 'de kotlin à la place – samAlvin

+1

@Bathsheba: 0.25 fonctionne bien en binaire, cependant. J'éviterais toujours les flottants dans les variables de boucle, car ajouter 0.25 peut être un no-op si le nombre de base est énorme, et alors vous vous retrouvez avec une boucle infinie. Cela ne peut pas arriver avec des entiers (une boucle de comptage d'entiers se terminera toujours, même si cela peut prendre beaucoup de temps si vous retournez à la fin) – Thilo

Répondre

2

Voici le code kotlin équivalent à pour boucle.

var i = 0.0 
while (i < 10.0) 
{ 
    println("value is:" + i) 
    i += 1.0 
} 
+1

Votre code ne compilera pas parce que je suis un –

+0

erreurs typo .. –

3

Vous devez utiliser le plug-in Intellij pour convertir le code Java pour Kotlin. Il est très soigné (sauf si vous avez du code complexe en utilisant lambdas) Voici ce qu'il convertit à votre donnée question:

var i = 0.0 
    while (i < 10.0) { 
     println("value is:" + i) 
     i += 0.25 
    } 
1

Kotlin boucle ne supporte que itérer le arrays.Please se référer https://kotlinlang.org/docs/reference/control-flow.html

Il est possible dans différents chemin

var length:Double = 10.0 
var increment:Double = 0.25 
for (index in Array((length/increment).toInt(), { i -> (i * increment) })) 
println(index)