我的kotlin学习之旅-day1-2020-12-20

每天一小时或者更多,慢慢解锁一下kotlin编程,day1先敲一下基础知识。

package day1

fun main(args:Array<String>){
    println("Kotlin start...")
    whenFunction(1);
    whenFunction("kotlin");
    whenFunction('X')
    whenFunction("aaa")
    val result = fact(10);
    println(result)
    forFunction()
    val res = forFact(10)
    println(res)
    whileFunction()
    returnFunction()
}


/**
 * case when
* when的用法,参数可以是任意类型
 */
fun whenFunction(obj:Any?){
    val invalide = arrayOf(11,12,13);
    when(obj){
        1,2,3,4,5,6,7,8,9,0 -> println("Object input is 数字!")
        "kotlin" -> println("The input is $obj")
        is Char -> println("This is a char")
        in 1..10 -> println("obj is in 1...10")
        in invalide -> println("obj is in invalide")
        !in 10..20 -> println("Obj is outside 10..20")
        else -> println("obj is $obj")
    }
}

/**
 * 用when 求阶乘
 */
fun fact(n:Int):Int{
    var result = 1;
    when(n){
        0,1 -> result = 1;
        else -> result = n * fact(n-1)
    }
    return  result;
}

/**
 * for循环的代码
 */
fun forFunction() {
    val arr = arrayOf(1,2,3);
    for (i in arr.indices) {
        println("index is $i,value is "+arr.get(i));
        println(arr[i])
    }
    for ((index, value) in arr.withIndex()){
        println("index is $index,value is $value")
    }
    (1..10).forEach {
        println(it)
    }
}

/**
 * params n
 * @return Long
 * 计算0到n到阶乘到和
 */
fun forFact(n:Int):Long {
    var result:Long = 0;
    (0..n).forEach {
        result += fact(it);
    }
    return result;
}

fun whileFunction() {
    var n = 0;
    while (n<100) {
        n++
        if (n%6==0) {
            println("I am happy")
        } else if (n%9==0) {
            println("I am continue")
            continue
        } else if (n>98) {
            println("I am break")
            break;
        }
    }
}

/**
 * return的特殊用法
 */
fun returnFunction(){
    fun sum(a:Int,b:Int) = a+b;//返回a+b的值
    println(sum(1,2))
    fun sum1(a:Int,b:Int) = {a+b}//带上大括号表示一个函数,将sum1函数返回
    println(sum1(1,2))
    println(sum1(1,2).invoke())//执行sum1函数
    val arr = arrayOf(1,2,3,4)
    arr.forEach (fun(a:Int){
        if (a==3) return@forEach;//不会结束循环,而是继续下一步循环,类似continue
        println(a)
    } )
    arr.forEach here@{
        if (it==3) return@here;//不会结束循环,而是继续下一步循环,类似continue
        println(it)
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,397评论 2 59
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 8,028评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 11,006评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 3,635评论 1 1
  • 在妖界我有个名头叫胡百晓,无论是何事,只要找到胡百晓即可有解决的办法。因为是只狐狸大家以讹传讹叫我“倾城百晓”,...
    猫九0110阅读 3,793评论 7 3

友情链接更多精彩内容