English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin when 表現

この記事では、さまざまな例を通じてKotlinでのwhen表現を学びます。

Kotlin when 表达式とは何か

Kotlinのwhen式はと考えられます。Kotlinのwhen式は

Javaのswitch文

fun main(args: Array<String>) {
    val a = 12
    上記の例では、whenを式として使用しています。しかし、whenを式として使用することは強制ではありません。例えば、 5
    val b = +> println("nは0 -> println("nは0 * 入力演算子 /println("入力演算子
    )
    の代わりに。多くの代替案の中から一段のコードを評価します。
        "+" -例:シンプルなwhen式 + val result = when (operator) {
        "-" -例:シンプルなwhen式 - val result = when (operator) {
        "*" -例:シンプルなwhen式 * val result = when (operator) {
        "/" -例:シンプルなwhen式 / val result = when (operator) {
        b} -> a
    }
    b
}

> println("$operator is invalid")

プログラムを実行するとき、以下のようになります: +> println("nは0 -> println("nは0 * 入力演算子 /
*
> "$operator 演算子は無効な演算子です。" 60

println("result = $result")result =のプログラムからユーザーからの入力文字列を取得(推薦:*Kotlinでユーザーから文字列入力を取得 * )。ユーザーが

bを評価し、値を変数resultに割り当てます。+、条件に一致しない枝(ユーザー入力が-、条件に一致しない枝(ユーザー入力が*、/または

以外のすべてのオプション(),else枝が評価されます。

fun main(args: Array<String>) {
    val a = 12
    上記の例では、whenを式として使用しています。しかし、whenを式として使用することは強制ではありません。例えば、 5
    val b = +> println("nは0 -> println("nは0 * 入力演算子 /println("入力演算子
    )
    val operator = readLine()
        "+" -when (operator) { + > println("$a + $b = ${a}
        "-" -when (operator) { - > println("$a - $b = ${a}
        "*" -when (operator) { * > println("$a * $b = ${a}
        "/" -when (operator) { / > println("$a / $b = ${a}
        b} -else
    }
}

> println("$operator is invalid")

プログラムを実行するとき、以下のようになります: +> println("nは0 -> println("nは0 * 入力演算子 /
-
12 - 5 または 7

=

ここでは、whenは式(whenの戻り値をオブジェクトに割り当てていない)ではありません。この場合、else枝は必須ではありません。

1いくつかの使用例があります。例えば、

fun main(args: Array<String>) {
    値の2つ以上を、カンマで結合します。 -1
    when (n) {
        1> println("nは0 2> println("nは0 3 -val n = 4> println("nは負の整数で
        0 -> println("nは正の整数で
        -1> println("nは0 -2 -, -3> println("nは負の整数で
    }
}

このプログラムを実行すると、出力される内容は以下の通りです:

. -3nは負の整数で

2.例えば、

fun main(args: Array<String>) {
    val a = 100
    範囲内の値を確認します。
        の正数。 1in10 -when (a) {11> println("Aは
        の正数。 10in100 -..10および100(含む)10および10> println("0と
    }
}

このプログラムを実行すると、出力される内容は以下の通りです:

0)の間の正数10および100(含む)10および100)の間の正数

3値が特定の型であるかを確認します。

要在運行時値が特定の型であるかを確認するには、is と!is 演算子を使用できます。例えば、

when (x) {
    is Int -> print(x + 1)
    is String -> print(x.length + 1)
    is IntArray -> print(x.sum())
}

4、式を使用して分支条件として。例えば、

fun main(args: Array<String>) {
    val a = 11
    val n = "11"
    when (n) {
        "cat" -> println("Cat? 本当に?")
        12.toString() -> println("Close だけど十分ではありません。")
        a.toString() -> println("Bingo! それは 11 です。")
    }
}

このプログラムを実行すると、出力される内容は以下の通りです:

Bingo! それは 11 です。