Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> 淺談Kotlin(4):控制流

淺談Kotlin(4):控制流

編輯:Android開發教程

淺談Kotlin(四):控制流

淺談Kotlin(一):簡介及Android Studio中配置

淺談Kotlin(二):基本類型、基本語法、代碼風格

淺談Kotlin(三):類

淺談Kotlin(四):控制流 

 

本篇介紹Kotlin的控制流語法(if,for,while,when....)

一、if 語句

  1、基本用法:

     var a = 10;
        if(a > 5){
            Log.i("xqxinfo","a>5成立")
        }else{
            Log.i("xqxinfo","a>5不成立")
        }
  
     打印日志:xqxinfo: a>5成立

    

  2、判斷結果賦值

var a = 5;
var b = 10;
var max = if(a>b) a else b
Log.i("xqxinfo","最大值max:"+max)

打印日志:xqxinfo: 最大值max:10


注意:可以將結果體放在{}中
var a = 5;
var b = 10;
var max = if(a>b) {a} else {b}

 

二、for循環

雖然你在使用了collections的函數操作符之後不會再過多地使用for循環,但是for循 環再一些情況下仍然是很有用的。

提供一個迭代器它可以作用在任何東西上面:

for (item in collection) { print(item) }

如果你需要更多使用index的典型的迭代,我們也可以使用 ranges (反正它通常 是更加智能的解決方案):

for (index in 0..viewGroup.getChildCount() - 1) { val view = viewGroup.getChildAt(index) view.visibility = View.VISIBLE }

在我們迭代一個array或者list,一系列的index可以用來獲取到指定的對象,所以上 面的方式不是必要的:

for (i in array.indices) print(array[i])

 

三、while循環

  1、while

var a = 10;
while (a<15){
a++;
Log.i("xqxinfo", "變量a的數值增加1,當前變量a="+a)
}

打印結果:

I/xqxinfo: 變量a的數值增加1,當前變量a=11
I/xqxinfo: 變量a的數值增加1,當前變量a=12
I/xqxinfo: 變量a的數值增加1,當前變量a=13
I/xqxinfo: 變量a的數值增加1,當前變量a=14
I/xqxinfo: 變量a的數值增加1,當前變量a=15

 

  2、do-while

var a = 10;
do {
     a++;
     Log.i("xqxinfo", "a自增一,當前值:" + a)
}while (a<15)

打印結果:

I/xqxinfo: a自增一,當前值:11
I/xqxinfo: a自增一,當前值:12
I/xqxinfo: a自增一,當前值:13
I/xqxinfo: a自增一,當前值:14
I/xqxinfo: a自增一,當前值:15

 

四、when (效果類似於switch)

1、基本使用

when 表達式與Java中的 switch/case 類似,但是要強大得多。

這個表達式會去 試圖匹配所有可能的分支直到找到滿意的一項。

然後它會運行右邊的表達式。

與 Java的 switch/case 不同之處是參數可以是任何類型,並且分支也可以是一個條 件。

對於默認的選項,我們可以增加一個 else 分支,它會在前面沒有任何條件匹配時 再執行。

var a = 10;

when(a){
    10 -> { //滿足a=10的情況
Log.i("xqxinfo","執行a=10的情況")
a = 11
}
11-> {
Log.i("xqxinfo","執行a=11的情況")
a = 12
}
else -> Log.i("xqxinfo","執行a!=10&&a!=11的情況")
}


打印結果:
I/xqxinfo: 執行a=10的情況

  注意:{}括起來滿足這個條件的語句,一行寫一個代碼,不要寫在一行裡

 

  2、條件可以是一系列被逗號分割的值。

var a = 10;
when(a){
  10,11 -> {
     Log.i("xqxinfo", "a滿足10||11");
  }
  else -> Log.i("xqxinfo","執行else")
 }

打印結果:
I/xqxinfo: a滿足10||11

  

  3、可以檢測類型

when(view) {
    is TextView -> view.setText("I'm a TextView")
    is EditText -> toast("EditText value: ${view.getText()}")
    is ViewGroup -> toast("Number of children:       ${view.getChildCount()} "
    else -> view.visibility = View.GONE
}

  

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved