IntRange區間與in
in
在某個範圍內。
!in
not in,不在某個範圍內。
Range作為變數
1
2
3
| val charRange = 'a' .. 'z' //包含a到z
val intRange = 1 until 10 //1到9,不包含10
val stepRange = 1 .. 10 step 2
|
判斷是否有在範圍內。
1
2
3
4
5
| val range1 = 1 .. 10
var c = 10
println(c in range1) //true
c = 11
println(c !in range1)
|
判斷是否有在範圍內。
1
2
3
4
| val range1 = 1 until 10
var c = 10
println(c in range1)
println(c !in range1)
|
contans
1
2
| val range = 2 .. 7
println(range.contains(5))
|
Range開始與結束
1
2
3
4
5
| val range = 2 .. 7
println(range) // 輸出: 2..7
println(range.first) // 輸出: 2
println(range.last) // 輸出: 7
println(range.step) // 輸出: 1
|
for與in
全包區間..
0 .. 6 代表包含0到包含6
1
2
3
4
5
| // in關鍵字會將變數i的值限制在指定範圍內
for (i in 0 .. 6) {
// i在每次徝環時取得一個+1的值
println(i)
}
|
印出a到e。
1
2
3
4
| for (c in 'a' .. 'e') {
// c在每次徝環時取得一個+1的值
println(c)
}
|
半包區間until
不包含尾端的值
1
2
3
| for (i in 0 until 6) {
println(i)
}
|
downTo
徝環順序要反過來由大到小,使用downTo
1
2
3
4
| for (i in 6 downTo 0) {
// i在每次徝環時取得一個-1的值
println(i)
}
|
step
每次跳2位數
1
2
3
| for (i in 0..6 step 2) {
println(i)
}
|
while與in
1
2
3
4
5
6
7
8
| // Range作為變數
val range = 0 .. 10
var a = 1
//如果a 在 range中就返回true,否則返回false
while (a in range) {
a++
println("$a")
}
|
Range與集合
有以下二種方法建立集合。
- 先建立range變數,再呼叫toList()函式。
- (2 .. 7).toList()
1
2
3
4
5
6
7
| val range = 2 .. 7
// 轉成list
val list = range.toList()
// 轉成陣列
val arr = (2 .. 7).toList().toIntArray()
// set沒有重覆的值
val set = range.toSet()
|