美文网首页kotlin 笔记KotlinKotlin编程
kotlin 中的 "for" 循环和迭代m

kotlin 中的 "for" 循环和迭代m

作者: shenshizhong | 来源:发表于2017-09-15 10:38 被阅读602次

文章目录

  • 场景
  • "for" 循环
  • 迭代map
  • 总结

场景

kotlin 中的 "for" 循环和迭代 map 与我们熟知的 java 中的有什么区别呢,有哪些更好的表现形式呢?

"for" 循环

  • kotlin "for"循环结构:for (i in a..b)
  • a代表起始值,b代表结束值。..表示区间。例如for (i in 1..100)
  • 注意:区间是包含的,也就是1到100(包含100)
    下面用整数迭代来玩Fizz-Buzz 游戏。注意比较java 与 kotlin 写法区别
//java
package javas;
public class FizzBuzz {
    private static String fizzBuzz(int i) {
        if(i % 15 == 0){
            return "FizzBuzz";
        }else if(i % 5 == 0){
            return "Buzz";
        }else if(i % 3 == 0){
            return "Fizz";
        }else {
            return ""+i;
        }
    }
    public static void main(String[] args){
        for (int i = 1; i < 101 ; i++) {
            System.out.println(fizzBuzz(i));
        }
    }
}
//kotlin
package kotlins
fun fizzBuzz(i: Int) = when{
        i % 15 == 0 -> "FizzBuzz"
        i % 5 == 0 -> "Buzz"
        i % 3 == 0 -> "Fizz"
        else -> "$i"
}

fun main(args: Array<String>){
    for (i in 1..100){//用区间迭代
        println(fizzBuzz(i))
    }
}

迭代map

  • kotlin 迭代 map 的结构: for ((a,b) in map)
  • a代表的是 map 的key,b代表的是 map 的 value,a和b是变量,自己命名即可
  • ..语法可以用于创建字符区间。例如 for (c in 'A'..'F')
//java
package javas;
import java.util.Iterator;
import java.util.TreeMap;

public class IteratingOverMaps {
    private static Character[] chars = new Character[]{'A','B','C','D','E','F'};
    private static TreeMap<Character, String> binaryReqs = new TreeMap<Character, String>();
    public static void main(String[] args){
        for(int i = 0; i < chars.length; i++){
            String s = Integer.toBinaryString(chars[i]);
            binaryReqs.put(chars[i], s);
        }

        Iterator<Character> iterator = binaryReqs.keySet().iterator();
        while(iterator.hasNext()){
            Character key = iterator.next();
            String s = binaryReqs.get(key);
            System.out.println(key + " = " + s);
        }
    }
}

//kotlin
package kotlins

import java.util.*

fun main(args: Array<String>){
    val binaryReps = TreeMap<Char, String>()
    for (c in 'A'..'F'){//创建字符区间
        val binary = Integer.toBinaryString(c.toInt())  //将 ASCII 码转化成二进制
        binaryReps[c] = binary //根据 key 为c 把 binary 存到 map 中
    }
    for ((letter, binary) in binaryReps){//迭代 map,把 key 和 value 赋值给变量
        println("$letter = $binary")
    }
}

总结

通过对比发现 kotlin 的优势

  • 使用范围更广泛了(..语法可以创建字符区间)
  • 代码更简洁,干练

如果对你有一点点帮助,请点个赞,你的鼓励就是我写作的动力。谢谢!
欢迎长按下图 -> 识别图中二维码 或者 扫一扫 关注我的公众号:

shenshizhong.png

我的csdn:http://blog.csdn.net/shenshizhong
我的简书:http://www.jianshu.com/u/345daf0211ad

相关文章

  • kotlin 中的 "for" 循环和迭代m

    文章目录场景"for" 循环迭代map总结 场景 kotlin 中的 "for" 循环和迭代 map 与我们熟知的...

  • Kotlin之迭代事物

    while循环 Kotlin有while循环和do-while循环,它们的语法和Java中的循环没什么区别: 迭代...

  • Kotlin 循环控制

    原文地址:Kotlin 循环控制 1. For 循环 for 循环可以对任何提供迭代器(iterator)的对象进...

  • Kotlin2.4while和for循环

    Kotlin的迭代应该是和Java最接近的。while循环和Java完全一样。for循环仅以唯一一种形式存在,和J...

  • 第十四章习题

    1.for循环和迭代器之间有什么关系? for循环会使用迭代协议来遍历迭代的对象中的每一个项。for循环会在每次迭...

  • 10.Python编程:迭代器和生成器

    前面介绍了python中的条件判断和循环控制。而在循环控制中,还有一个比较重要的迭代器。迭代也叫遍历,迭代是Pyt...

  • Kotlin 类和对象(六)

    Kotlin 类和对象(六) 上一篇我们讲了Kotlin的循环还有条件控制Kotlin 循环和条件控制(五) ,这...

  • Kotlin 循环和异常

    前言 在 Kotlin 的循环语句中,while 循环还有 do...while 循环和 Java 中是一致的,在...

  • vue学习笔记5——v-for(list rendering)

    v-for迭代分为数组迭代和对象迭代 作用 : 控制HTML元素中的循环,实现语句列表的生成 用法 : v-for...

  • 4-Vue v-for列表渲染

    v-for迭代分为数组迭代和对象迭代 作用: 控制HTML元素中的循环,实现语句列表的生成 用法: v-for =...

网友评论

    本文标题:kotlin 中的 "for" 循环和迭代m

    本文链接:https://www.haomeiwen.com/subject/jbrjsxtx.html