滅入るんるん

何か書きます

Kotlin使いのためのC#入門 Returns and Jumps

> Top

Kotlinには以下のジャンプ命令がありました。

  • return
  • break
  • continue

また、これらは式として利用できました。

C#ではこれらに追加でgotoがあります。また、C#ではジャンプ命令はStatementのため、val s = person.name ?: returnのような式中での早期リターンはできません。

Break and Continue Labels

Kotlinではラベルを指定して、指定したラベルのループをbreakcontinueでジャンプすることができました。 C#ではbreakcontinueではこの機能を提供せず、gotoで提供しています。

class WhileLoop
{
    public void Main()
    {
        int i = 0;
        while (i < 100)
        {
            if (i % 2 == 0)
            {
                continue;
            }
            if (i % 50 == 0)
            {
                goto Break;
            }
            i++;
        }
        // No Operationのため空のブロックを書いてる
        Break: { }
    }
}

C/C++を使ったことがある方なら、わかると思いますが、悪名高いあのgotoです。 サンプルではネスト無しのループで使用しましたが、本来ならばbreakcontinueを使いgotoは使用するべき箇所ではありません。

gotoは好きなところにジャンプできる分、可読性が悪化するとして使用は避けるべき機能として有名です。gotoはネストされたループなどで、外側のループを抜けるなど局所的なところでは可読性を上げますが、それ以外のところでは安易な利用を勧めません。

Return at Labels

該当の機能はないので割愛。