kotlin基础必备(有Java基础)

1.常量&变量

kotlin中省去了Java中详细的分类,只对常量和变量进行了单独分类如下,更为便捷

常量—>val

变量—>var

【注】建议优先使用val来声明一个变量,当val不能满足需求时再使用var,这样才能使程序更健壮,也更符合高质量的编码规则。

2.函数

在kotlin中定义函数不在像Java和C语言一般,

在kotlin中定义函数的关键字—>fun  举例如下:

fun methodName(a:Int,b:Int):Int{
   //fun 函数名(参数:参数类型)函数返回值的类型{}
   return 0;
}

当函数需要返回一个值时,在括号后面我们注明其类型,也就是上面书写的 :Int

3.程序的逻辑控制

1)if条件语句

kotlin中的if语句与Java中差别不大

下面是一个简单的使用了if条件语句的函数

fun largerNumber(num1:Int,num2:Int):Int{
   var n=0
   //因为n的值会依据不同情况赋给不同的值,所以使用了var并将n初始化为0
   if(num1>num2){
       n=num1
  }else{
       n=num2
  }
   return n
}

我们可以从上面的代码发现kotlin中的if语句相较于Java而言多了一个功能,即:它是可以有返回值的。那么我们的代码可以简化成如下形式

fun largerNumber(num1:Int,num2:Int):Int{
   var n=if(num1>num2){
       num1
  }else{
       num2
  }
   return n
}
//因为kotlin中的if语句本身可以有返回值,也就是说我们定义的变量n其实是一个多余变量
//所以我们的代码可以简化为如下形式
/*
fun largerNumber(num1:Int,num2:Int):Int{
return if(num1>num2){
num1
}else{
num2
}
}
*/

有一点很重要,当一个函数只有一行代码时,可以省略掉函数体的部分。那么对于我们此处的代码,它就可以精简为如下形式

fun largerNumber(n1:Int,n2:Int)=if(n1>n2) n1 else n2

2)when条件语句

kotlin中的when语句类似于Java中的switch语句,但它的功能比switch更强大完善

eg:

  • 我们编写一个查询不同人成绩的功能的函数,使用if语句的代码如下

    fun getScore(name:String)=if (name=="Tom"){
       86 }else if (name=="Jim"){
       77 }else if (name=="Jack"){
       95 }else if (name=="Lily"){
       100 }else{
       0 }

    而当我们使用when语句时,我们的代码是以下形式

    fun getScore(name: String)=when(name){
       "Tom"->86
       "Jim"->77
       "Jack"->95
       "Lily"->100
       //匹配值->{执行逻辑} 当执行逻辑只有一行代码时我们可以省略{...}
       else->0
    }

    我们需要知道:在kotlin中,when语句和if语句一样,是可以有返回值的,when语句允许传入任意类型的参数。

  • when语句可以进行类型匹配

    fun checkNumber(num:Number)=when(num){
       is Int-> println("number is Int")
       is Double-> println("number is Double")
       //is关键字是类型匹配的核心
       //它相当于Java中的instanceof关键字
       else-> println("number not support")
    }
  • when语句也可以不带参数使用(适用于以下情况:所有以Tom开头的名字对应的数据都是86时)

    fun getScore(name: String)=when{
       name.startsWith("Tom")->86
       //传入name只要是以Tom开头,他对应的数据就是86
       name=="Jim"->77
       name=="Jack"->95
       name=="Lily"->100
       else->0
    }

3)循环语句

(1)while循环

与Java中的while循环用法没有任何区别

(2)for循环

for-in循环

  • 升序区间

    • 双端闭区间

      区别于Java,我们可以使用kotlin代码表示一个区间

      ..是创建两端闭区间的关键字

      val r=0..10
      //表示[0,10]

      我们可以用for-in循环遍历上述区间

      fun main(){
         for(i in 0..10){
             println(i)
        }
         //输出包括1和10在内的区间内所有数
      }
    • 单端闭区间(符合数组规则)

      使用until关键字可以创建一个左开右闭的区间

      val r=0 until 10
      for (i in r){
         //相当于java中for-i循环中i++的效果
         print(i+" ")    
      }

      如果想要跳过一些元素,那么我们可以使用step关键字

       for (i in 0 until 10 step 2){
      //相当于java中for-i循环中i=i+2的效果  
          print(i+" ")    
      }
  • 降序区间(双端闭区间)

    可以使用downTo关键字实现,它一样可以使用step关键字实现跳过一些元素的功能

     for (i in 10 downTo 1 step 2){
           print(i+" ")
      }



posted @ 2022-03-05 13:41  单身万岁  阅读(86)  评论(0)    收藏  举报