Android Kotlin条件制御
前言
kotlin条件制御構文は簡単で、java条件制御よりも多くの利点は、より少ないコードでより多くの機能を実現することです.
if式
kotlinではif式の結果を変数に割り当てることができます
Javaのように3元オペレータを持つ必要はありません.簡単に実現できるからです.
使用区間
in演算子を使用して、指定した区間内に数値があるかどうかを検出します.区間フォーマットはxです.y:インスタンス
出力結果:
When式
whenはそのパラメータをすべての分岐条件と順番に比較し,ある分岐が条件を満たすまで比較した.
whenは式としても文としても使用できます.式として使用される場合、条件を満たすブランチの値は式全体の値であり、文として使用される場合、個別のブランチの値は無視されます.whenは他の言語のswitchオペレータに似ています.最も簡単な形式は次のとおりです.
whenではelseはswitchのdefaultと同じです.他のブランチが条件を満たさない場合、elseブランチが評価されます.複数のブランチを同じ方法で処理する必要がある場合は、複数のブランチ条件をカンマで区切ることができます.
また、(in)または(!in)の区間または集合に値を検出することもできます.
もう1つの可能性は、値が(is)または(!is)ではない特定のタイプの値を検出することです.注意:スマート変換のため、追加の検出を必要とせずに、このタイプのメソッドと属性にアクセスできます.
whenはif−else if鎖の代わりに用いることもできる.パラメータが指定されていない場合、すべてのブランチ条件は単純なブール式であり、ブランチの条件が真の場合、ブランチは実行されます.
≪インスタンス|Instance|emdw≫
出力結果:
xこの区間範囲whenでin演算子を使用して、セット内にインスタンスが含まれているかどうかを判断します.
出力結果:
まとめ:
kotlinではループ制御構文はjavaでの構文に対して書き方の簡略化を行い,より少ないコードでより機能的に実現した.if(式)は変数var xxに値を割り当てることができ、式は範囲in構文のような小さな変更を使用してコードを簡略化することができる.whenサイクル制御を新たに追加し、公式紹介はswitchに等しいが、switchの拡張にも属する.範囲in操作、表現式、lambda式をサポートする.
kotlin条件制御構文は簡単で、java条件制御よりも多くの利点は、より少ないコードでより多くの機能を実現することです.
if式
kotlinではif式の結果を変数に割り当てることができます
val max = if (a > b) {
print("Choose a")
a
} else {
print("Choose b")
b
}
Javaのように3元オペレータを持つ必要はありません.簡単に実現できるからです.
val c = if (condition) a else b
使用区間
in演算子を使用して、指定した区間内に数値があるかどうかを検出します.区間フォーマットはxです.y:インスタンス
fun main(args: Array) {
val x = 5
val y = 9
if (x in 1..8) {
println("x ")
}
}
出力結果:
x
When式
whenはそのパラメータをすべての分岐条件と順番に比較し,ある分岐が条件を満たすまで比較した.
whenは式としても文としても使用できます.式として使用される場合、条件を満たすブランチの値は式全体の値であり、文として使用される場合、個別のブランチの値は無視されます.whenは他の言語のswitchオペレータに似ています.最も簡単な形式は次のとおりです.
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { //
print("x 1 , 2")
}
}
whenではelseはswitchのdefaultと同じです.他のブランチが条件を満たさない場合、elseブランチが評価されます.複数のブランチを同じ方法で処理する必要がある場合は、複数のブランチ条件をカンマで区切ることができます.
when (x) {
0, 1 -> print("x == 0 or x == 1")
else -> print("otherwise")
}
また、(in)または(!in)の区間または集合に値を検出することもできます.
when (x) {
in 1..10 -> print("x is in the range")
in validNumbers -> print("x is valid")
!in 10..20 -> print("x is outside the range")
else -> print("none of the above")
}
もう1つの可能性は、値が(is)または(!is)ではない特定のタイプの値を検出することです.注意:スマート変換のため、追加の検出を必要とせずに、このタイプのメソッドと属性にアクセスできます.
fun hasPrefix(x: Any) = when(x) {
is String -> x.startsWith("prefix")
else -> false
}
whenはif−else if鎖の代わりに用いることもできる.パラメータが指定されていない場合、すべてのブランチ条件は単純なブール式であり、ブランチの条件が真の場合、ブランチは実行されます.
when {
x.isOdd() -> print("x is odd")
x.isEven() -> print("x is even")
else -> print("x is funny")
}
≪インスタンス|Instance|emdw≫
fun main(args: Array) {
var x = 0
when (x) {
0, 1 -> println("x == 0 or x == 1")
else -> println("otherwise")
}
when (x) {
1 -> println("x == 1")
2 -> println("x == 2")
else -> { //
println("x 1 , 2")
}
}
when (x) {
in 0..10 -> println("x ")
else -> println("x ")
}
}
出力結果:
x == 0 or x == 1
x 1 , 2
xこの区間範囲whenでin演算子を使用して、セット内にインスタンスが含まれているかどうかを判断します.
fun main(args: Array<String>) {
val items = setOf("apple", "banana", "kiwi")
when {
"orange" in items -> println("juicy")
"apple" in items -> println("apple is fine too")
}
}
出力結果:
apple is fine too
まとめ:
kotlinではループ制御構文はjavaでの構文に対して書き方の簡略化を行い,より少ないコードでより機能的に実現した.if(式)は変数var xxに値を割り当てることができ、式は範囲in構文のような小さな変更を使用してコードを簡略化することができる.whenサイクル制御を新たに追加し、公式紹介はswitchに等しいが、switchの拡張にも属する.範囲in操作、表現式、lambda式をサポートする.