# Kotlin - for 迴圈 ###### tags: `Tag(Kotlin 筆記)` [TOC] ## 陣列的宣告 * 一般宣告型態方式 ```clike= var array: IntArray = intArrayOf(1, 2, 3) ``` * 不需要宣告型態了, 因為後面都已經把型態標示出來, 就可以節省一些資訊。 ```clike= var array = intArrayOf(1,2,3) ``` * 宣告各種型態的陣列 ```clike= var iArray = intArrayOf(1, 2, 3) var fArray = floatArrayOf(1.0f, 2.0f, 3.0f) var bArray = booleanArrayOf(true, false, true) var cArray = charArrayOf('a', 'b', 'c') ``` * 透過建構子傳入想要傳入的個數 ```clike= var iArray = IntArray(3) iArray[0] = 4 iArray[1] = 1 iArray[2] = 7 ``` * 字串陣列,不是 stringArrayOf 宣告, 須透過 arrayOf 這個方法來進行宣告 ```clike= var sArray = arrayOf("abc", "def", "ght") ``` --- ## for 迴圈取得整個陣列全部值 ### item > for(item in xxxArray) ```clike= var iArray = intArrayOf(1, 2, 3) var sArray = arrayOf("abc", "def", "ght") for(item in iArray){ print("$item ") } 結果:1 2 3 for(item in sArray){ print("$item ") } 結果:abc def ght ``` ## for 迴圈取得索引值 ### indices > for (i in xxxArray.indices) ```clike= for (i in iArray.indices) { println("${iArray[i]}") } ``` * array 的 indices 方法就是拿出索引值 透過存取 ==${xxxArray[i]}== 來存取到陣列內的值 * 為什麼大括弧來包覆呢? 因為它必須透過 xxxArray 的 index 去存取值, 屬於運算的部分, 因此==須透過大括弧包覆才能取到值==, 否則只會取到 iArray[i] 所對應的位址而已。 ## for 迴圈範圍運算 ### for(i in 1..100) 透過範圍運算來達到指定數量 ==迴圈從1跑到100的累加==, 那麼就可以透過範圍運算式達成 ```clike= var sum = 0 for(i in 1..100){ sum += i } print("sum is $sum") 結果:sum is 5050 ``` ### step > for(i in 2..10 step 2) 設定 step 屬性, 每圈+2,==迴圈從2開始,每次+2跑到10的累加== ,就是 2+4+6+8+10 的結果 ```clike= var sum = 0 for(i in 2..10 step 2){ sum += i } print("sum is $sum") 結果:sum is 30 ``` ### downTo > for(i in 10 downTo 2 step 2) 用來倒數, 就是說一開始是 1 到 10, 用了 downTo 屬性就會變成 10 到 1。 ```clike= for(i in 10 downTo 2 step 2){ print("$i ") } 結果: 10 8 6 4 2 ``` ### until > for(item in 1 until 10) 用來指定到那個位置,就是說一開始是 1 到 10, 用了 until 屬性就會變成 1 到 9。 ```clike= for(item in 1 until 10){ print("$item ") } 結果: 1 2 3 4 5 6 7 8 9 ```