Kotlin基礎語法(上)

Kotlin基礎語法(下)

Kotlin基礎語法(上)

輸出Hello world!!!

fun main(args:Array<String>){
    println("Hello world!!!")
}

變量與輸出

fun main(args:Array<String>){
    var name:String = "張三"   //定義字符串類型
    var name = "張三"          //自動判斷類型爲字符串(智能類型推斷           )
    var age = 20   //定義整型
    name = "李四"
    var aInt:Int = 0boo11 //二進制方式賦值
    println("aInt的值:"+aInt)
}

kotlin常見數據類型

kotlin常見數據類型

變量的取值範圍

fun main(args:Array<String>){
    val along:Long = Long.MAX_VALUE     //判斷long型取值範圍
    val blong:Long = Long.MIN_VALUE
    println(along)
    println(blong)
    
}

kotlin函數

  • 實例:打印菱形
fun main(args:Array<String>){
    print1star()
    print3star()
    print5star()
    print3star()
    print1star()
}

fun print1star(){
    println("  *")
}

fun print3star(){
    println(" ***")
}

fun print5star(){
    println("*****")
}

kotlin布爾類型

fun main(args:Array<String>){
    var num1 = 2
    var num2 = 3
    println(num1<num2)
    
    var num3 = Math.sqrt(5.0) - Math.sqrt(4.0)      //根號運算
    var num4 = Math.sqrt(4.0) - Math.sqrt(3.0)
    println(num3<num4)
    
    var num5 = Math.pow(2.0,100.0)      //冪運算
    var num6 = Math.pow(3.0,75.0)
    println(num5<num6)
}

kotlin命令行交互式編程

  • 配置好環境變量後命令行輸入kotlinc進入,:quit退出

函數加強

kotlin函數規則

fun 函數名(參數名:參數類型):返回值類型{
    函數體
}

fun main(args:Array<String>):Unit{
    //函數體
}

實例:計算器

fun main(args:Array<String>){
    var a = 8
    var b = 2
    
    println("a+b"+add(a,b))
    println("a-b"+sub(a,b))
    println("a*b"+mutl(a,b))
    println("a/b"+devide(a,b))
}

fun add(a:Int, b:Int):Int{
    return a+b
}

fun sub(a:Int, b:Int):Int{
    return a-b
}

fun mutl(a:Int, b:Int):Int{
    return a*b
}

fun devide(a:Int, b:Int):Int{
    return a/b
}

字符串模板

  • 實例:日記模板
fun diaryGenerater(placeName:String):String{
    var temple = """
    今天天氣晴朗,萬里無雲,我們去${placeName}遊玩,
    首先映入眼簾的是${placeName}${placeName.length}個鎦金大字
    """
    
    return temple
}

fun main(args:Array<String>){
    println(diaryGenerater("中山公園")) 
    //輸出結果:今天天氣晴朗,萬里無雲,我們去中山公園遊玩,
    首先映入眼簾的是中山公園4個鎦金大字
}

條件控制if…else…

fun checkFace(score:Int){
    if(score>80){
        println("這是一個帥哥")
    }else{
        println("這是一個衰哥")
    }
}
  • 也可以寫到一行
if(score>80) println("這是一個帥哥") else println("這是一個衰哥")
  • 返回兩個數中較大的那個
fun returnMax(a:Int,b:Int):Int{
    if(a>b) return a else return b
}

字符串比較

fun main(args:Array<String>){
    var str1 = "Andy"
    var str2 = "andy"
    var str3 = "Andy"
    
    println(str1==str2)     //flase
    println(str1==str3)   //true,kotlin中“==”類似Java中的equals
    
    println(str1.equals(str2,true)) //true,equals第二個參數表示忽略大小寫
}

kotlin空值處理

fun heat(str:String?):String{    //不加?方法接收一個非空字符串,加?表示該參數可以爲空
    return "熱"+str
}

fun main(args:Array<String>){
    var result1 = "水"
    println(heat(result1))  //“熱水”
    
    println(heat(null))  //無“?”,傳null報錯
    println(heat(null)) //有“?”,輸出熱null
}

kotlin的when表達式

//需求:10分滿分,9分幹得不錯,8分還可以,7分還需努力,6分剛及格,其他需要加油
fun gradeStudent(score:Int){
    when(score){
        10 -> println("滿分")
        9 -> println("幹得不錯")
        8 -> println("還可以")
        7 -> println("還需努力")
        6 -> println("剛及格")
        else -> println("還需要加油")
    }
}

fun main(args:Array<String>){
    gradeStudent(7)     //還需努力
}
  • 實例:完善日記模板
fun diaryGenerater(placeName:String):String{
    var temple = """
    今天天氣晴朗,萬里無雲,我們去${placeName}遊玩,
    首先映入眼簾的是${placeName}${numToChinese(placeName.length)}個鎦金大字
    """
    
    return temple
}

fun numToChinese(num:Int):String{
    var result = when(num){
        1 -> "一"
        2 -> "二"
        3 -> "三"
        4 -> "四"
        5 -> "五"
        6 -> "六"
        else -> "好幾個"
    }
    
    return result
}

fun main(args:Array<String>){
    println(diaryGenerater("中山公園")) 
    //輸出結果:今天天氣晴朗,萬里無雲,我們去中山公園遊玩,
    首先映入眼簾的是中山公園四個鎦金大字
}

kotlin的loop和Range

fun main(args:Array<String>){
    var nums = 1 .. 100    //表示構造從1到100的數組[1,100]
    var nums2 = 1 until 100 //表示從1到99 [1,100)
    var result = 0
    for(num in nums){
        result = result+num
    }
    println("結果:${result}")  //結果:5050
    
    //步長
    var nums2 = 1 .. 16
    for(num in nums2 step 2){   //步長爲2
        println(num)    //輸出1,3,5,7....
    }
    
    //反轉
    var num3 = nums2.reversed()
        for(num in nums3){   //反轉打印
        println(num)    //輸出16,15,14....
    }
    
    //數目
    println(num3.count())   //輸出16表示有16個數
}

kotlin的List和Map入門

  • List
fun main(args:Array<String>){
    var lists = listOf("買雞蛋","買大米","買肉")    //構建list
    for(list in lists){     //打印值
    println(list)       //輸出:買雞蛋 買大米 買肉
    }
    
    for((i,e) in lists.withIndex()){
        println("$i $e")  //輸出:0 買雞蛋    1 買大米    2 買肉
    }
}
  • Map
import java.util.TreeMap

fun main(args:Array<String>){
	var map = TreeMap<String,String>()
    map["好"] = "good"
    map["學習"] = "Study"
    map["天"] = "day"
    map["向上"] = "up"
    
    println(map["好"]+" "+map["好"]+" "+map["學習"])
    println(map["天"]+" "+map["天"]+" "+map["向上"])
    
    //輸出結果:
    //good good study
    //day day up
}

函數和函數式表達式

  • 如果函數的函數體只有一句,那麼可以省略大括號,如果有返回值,可以如下書寫
fun main(args:Array<String>){
    println(add(5,3))   //輸出8
}
fun add(x:Int,y:Int):Int = x+y
  • 函數表達式
fun main(args:Array<String>){
    var i = {x:Int,y:Int -> x+y}    //此時i被聲明爲爲一個函數表達式
    println(i(3,5)) //輸出8
    
    var j:(Int,Int)->Int = {x,y -> x+y} //另一種編寫方式
    println(j(3,5)) //輸出8
}

Kotlin默認參數和具名參數

import java.util.TreeMap

val Pi = 3.1415926f         //val類似java中的final

fun main(args:Array<String>){
	var area = 獲取長方形面積(3,2)
    println(area)
    
    var area2 = 獲取圓的周長(半徑 = 2.0f)   //由於第一個參數是具名參數,所以需要指定:第二個參數名 = 值
    println(area2)
}

fun 獲取長方形面積(:Int,:Int):Int{
    return*}

fun 獲取圓的周長(PI:Float = Pi,半徑:Float):Float{   //PI:Float = Pi 指定第一個參數爲具名參數
    return 2*PI*半徑
}

fun 獲取圓的周長2(PI:Float = Pi,直徑:Float):Float{
    return PI*直徑
}

fun 獲取圓柱體體積(PI:Float = Pi,半徑:Float,:Float):Float{
    return PI*半徑*半徑*}

fun 獲取球體的表面積(PI:Float = Pi,半徑:Float):Float{
    return PI*半徑*半徑*4
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章