カテゴリ: Kotlin 更新日: 2026/01/31

Kotlinのreturnラベルを完全解説!初心者でもわかるクロスラインreturnの基本

Kotlinのreturnラベルとは?クロスラインreturnの基本
Kotlinのreturnラベルとは?クロスラインreturnの基本

先生と生徒の会話形式で理解しよう

生徒

「Kotlinでループの中から途中で抜けたいときって、どうやって書けばいいんですか?」

先生

「それにはreturnを使いますが、Kotlinでは関数の中で書き方に注意が必要です。特にラムダ式の中で抜けたいときにはreturnラベルを使うんですよ。」

生徒

「returnラベルって何ですか?初めて聞きました!」

先生

「では、初心者向けにゆっくりと説明していきましょう!」

1. returnとは?まずは基本から

1. returnとは?まずは基本から
1. returnとは?まずは基本から

returnは、関数の中で「ここで処理を終わらせて、結果を返す」という合図です。少し難しく聞こえるかもしれませんが、やっていることはとてもシンプルで、関数の出口を作る役割だと思えば大丈夫です。

まずは短くて分かりやすい例を見てみましょう。


fun sayHello(): String {
    return "こんにちは"
}

この関数は、呼び出されたときに「こんにちは」という文字を返します。つまり、処理の最後にreturnが置かれ、その時点で関数は終了します。

実際に呼び出してみるとどうなる?

fun main() {
    val message = sayHello()   // 関数から返ってきた値を受け取る
    println(message)
}

こんにちは

このように、sayHello()を呼び出した瞬間に関数の中へ処理が移動し、return "こんにちは"で結果が返され、その値がmessageに入ります。もしreturnがなければ、どの値を返したいのか分からなくなってしまいます。

「必要なところまで来たらreturnで終わらせる」。これが関数の基本的な動きであり、Kotlinでも非常によく使う考え方です。

2. ラムダ式の中のreturnがややこしい

2. ラムダ式の中のreturnがややこしい
2. ラムダ式の中のreturnがややこしい

ここからは、初心者がつまずきやすいポイントを見ていきます。Kotlinには、forEachmapといった「ラムダ式(らむだしき)」を使う書き方があります。見た目は普通のループに似ていますが、returnを書いたときの動きが少し特殊です。

たとえば次のサンプルを見てください。数字の一覧を順番に処理し、「2を見つけたら抜けたい」と考えてreturnを書いています。


fun main() {
    val numbers = listOf(1, 2, 3)
    numbers.forEach {
        if (it == 2) return
        println(it)
    }
    println("ループが終わりました")
}

1

一見すると「2のときにループをやめる」ように見えますが、実際にはmain関数そのものが終了し、println("ループが終わりました")まで実行されません。つまり、ラムダ式の中で書いたreturnは、ループだけを止めるのではなく、外側の関数も終わらせてしまうのです。

この動きは、普通のfor文で書いたときとは違うので、プログラミング初心者ほど驚きやすいポイントです。「returnを書く場所によって、どこまで処理が終わるのか」が大切になる、ということだけ覚えておきましょう。

3. クロスラインreturnとは?

3. クロスラインreturnとは?
3. クロスラインreturnとは?

クロスラインreturnとは、ラムダ式の中から外の処理を終了させるreturnのことです。

これにより、意図しない終了が起こることがあります。

このようなとき、Kotlinでは「ラベル付きreturn」を使うことで、安全に抜けることができます。

4. returnラベルの使い方

4. returnラベルの使い方
4. returnラベルの使い方

ラベルは、@ラベル名という形で付けます。forEachなどの前に名前を付けて、その場所に対してreturnすることで、処理の流れを制御できます。


fun main() {
    val numbers = listOf(1, 2, 3)
    numbers.forEach label@{
        if (it == 2) return@label
        println(it)
    }
    println("終了")
}

1
3
終了

return@labelと書くことで、そのループだけをスキップし、main関数は最後まで実行されます。

5. ラベル名の省略もできる

5. ラベル名の省略もできる
5. ラベル名の省略もできる

実はforEachなどでは、関数名をそのままラベルとして使うこともできます。


fun main() {
    listOf(1, 2, 3).forEach {
        if (it == 2) return@forEach
        println(it)
    }
    println("終了")
}

1
3
終了

このように、わざわざlabel@と書かなくても、return@forEachと書けば同じ効果になります。

6. returnラベルを使う理由

6. returnラベルを使う理由
6. returnラベルを使う理由

なぜreturnラベルが必要なのでしょうか? それは、ラムダの中でreturnを書いたときに、どこに戻るかがはっきりしないと、バグの原因になるからです。

特に初心者のうちは、ループの中でreturnを使ったときにプログラム全体が止まってしまうことに驚くかもしれません。

そこで、return@ラベル名を使えば「このループだけを抜ける」とはっきり書けて、安全なのです。

7. breakとreturnの違いもおさえておこう

7. breakとreturnの違いもおさえておこう
7. breakとreturnの違いもおさえておこう

breakは、普通のfor文などで使う「ループから抜ける命令」です。

ですが、forEachなどのラムダではbreakが使えません。そのかわりにreturn@ラベルを使うというわけです。

この違いを知っておくと、ループ処理を安全に書くことができます。

8. 初心者が覚えておきたいポイントまとめ

8. 初心者が覚えておきたいポイントまとめ
8. 初心者が覚えておきたいポイントまとめ
  • returnは、関数を終わらせる命令
  • ラムダの中でreturnを書くと、関数全体が終わってしまうことがある
  • それを防ぐにはreturn@ラベル名を使う
  • ラベルはlabel@return@forEachのように書く

このように、Kotlinのreturnラベルとクロスラインreturnの知識は、初心者が混乱しやすいポイントですが、基本を押さえればとても便利に使えるようになります。

まとめ

まとめ
まとめ

Kotlinにおけるreturnラベルクロスラインreturnは、ラムダ式や関数内の処理を安全に制御するうえで非常に重要なテクニックです。特に、forEachのような高階関数の中でreturnを使う場合、意図しないタイミングで処理が終了してしまうことがあります。これを防ぐためには、処理の流れを明示的に指定できるreturn@ラベル名の使用が不可欠です。

ラベルを使うことで、関数全体の終了ではなく、対象のラムダのみをスキップする柔軟な制御が可能になります。これにより、Kotlin特有のクロスラインreturnによる混乱を回避し、意図通りのコード実行を実現できます。

また、ラベル名は明示的に付けてもよいですし、forEachmapなどの関数名をそのままラベルとして使うこともできるため、より簡潔で読みやすいコードに仕上げることが可能です。これは、Kotlinの持つ表現力の高さと、安全性を両立した言語設計の一端です。

特に初心者にとっては、returnbreakの使い分けや、ラムダ内での制御の違いは混乱しやすいポイントです。しかし、今回のように順を追って使い方と意味を理解すれば、ロジックの分岐やループ制御をより的確に書けるようになります。Kotlinのラムダ式高階関数を活用するには、returnラベルの理解が不可欠です。

以下に、returnラベルを使った実践的なサンプルをもう一度紹介します。


fun main() {
    val names = listOf("たかし", "ゆかり", "けんじ", "さとこ")
    names.forEach {
        if (it.contains("か")) return@forEach
        println("処理対象: $it")
    }
    println("全処理終了")
}

処理対象: ゆかり
処理対象: けんじ
全処理終了

この例では、「か」が含まれている要素だけをスキップし、それ以外を処理しています。ラムダ式の中でも安全にreturnを使っている好例です。

このように、Kotlinではreturnラベルを使うことで処理の流れを自由自在に制御でき、複雑なロジックにも柔軟に対応できます。関数型プログラミングに親しみのない初心者でも、基本さえ押さえれば安心して使える構文です。

先生と生徒の振り返り会話

生徒

「先生、returnラベルって最初は難しそうだと思ったけど、例を見たら意外と分かりやすかったです!」

先生

「そうですね。特にラムダ式の中で使うときは、returnの動きが変わるので注意が必要なんですよ。」

生徒

「最初のコードではmain関数ごと終了してびっくりしました。return@forEachでループだけ抜けるようになるんですね!」

先生

「その通りです。ラベルを付けることで、処理の流れを明示的に制御できるのがKotlinの特徴です。」

生徒

「今度からforEachとかmapを使うときは、必ずreturnの動きに注意して書くようにします!」

先生

「それが大切です。コードを読む人にも優しい書き方を意識しましょうね。」

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Kotlinのreturnとは何ですか?初心者にもわかるように教えてください。

Kotlinのreturnとは、関数内で処理を終了し、呼び出し元に値を返すための命令です。たとえば「こんにちは」という文字列を返す場合に使われます。基本構文を理解することはKotlin入門の第一歩です。

Kotlinのラムダ式でreturnを使うとどうなりますか?

Kotlinのラムダ式内でreturnを使うと、外側の関数全体が終了してしまう場合があります。forEachなどの高階関数では、意図しない挙動になりやすいため注意が必要です。
関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説