【Kotlin】レッスン3-04:真偽値を返す関数を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:真偽値を返す関数

この記事の練習問題を解くために必要な知識:
基礎文法、制御構造(レッスン1~2)関数の定義と呼出しデフォルト引数とキーワード引数関数の戻り値真偽値を返す関数関数のオーバーロードジェネリクスの基礎

<<前のページ Kotlin記事一覧 次のページ>>

Kotlinの「真偽値を返す関数」とは

この章ではKotlinにおける「真偽値を返す関数」の意味や使い方を学習します。用語の解説が不要な方はここをクリックして練習問題へ飛びましょう。



Kotlinでは関数がさまざまな型の値を返すことができます。

その中でも「真(true)」または「偽(false)」を返す関数は、条件判定やデータのフィルタリングでよく使われます。

本記事では、初心者向けに真偽値を返す関数の基本と使用例について解説します。

真偽値を返す関数とは?

真偽値を返す関数は、特定の条件に基づいてtrueまたはfalseのいずれかを返す関数です。

この種の関数はプログラム内で判断を行う際に利用され、コードを簡潔かつ読みやすくするのに役立ちます。

例えば入力された数値が偶数か奇数かを判定するような状況では、真偽値を返す関数を利用することで、条件判定を明確かつシンプルに記述できます。

基本構文

真偽値を返す関数の定義は、以下のように行います。

fun isEven(number: Int): Boolean {
    return number % 2 == 0
}
  • isEven: 関数名です。ここでは「偶数かどうか」を判定する機能を表しています。
  • Boolean: 関数の戻り値の型で、trueまたはfalseを返します。

このように戻り値の型としてBooleanを指定することで、真偽値を返す関数を作成できます。

使用例

以下はisEven関数を用いて数値が偶数かどうかを判定するプログラムの例です。

fun main() { // メイン関数
    val number = 4
    if (isEven(number)) { // isEven(number)がtrueならば
        println("$number は偶数です")
    } else {              // isEven(number)がtrueでないならば
        println("$number は奇数です")
    }
}

fun isEven(number: Int): Boolean { // 真偽値を返す関数
    return number % 2 == 0 // 余りが0ならtrue、1ならfalseを返す
}

このコードでは、以下の処理が行われます:

  1. 変数numberに整数値を代入します。
  2. 関数isEvenを呼び出し、その結果がtruefalseかを確認します。
  3. if-else文で条件を判定し、それに応じたメッセージを出力します。

このように真偽値を返す関数を使うことで、条件に基づいた処理を簡潔に記述できます。

まとめ

【初心者向け】Kotlinの関数の使い方を分かりやすくまとめた概念図。 特に関数の呼び出しや戻り値、関数のオーバーロード、ジェネリクス、デフォルト引数とキーワード引数について視覚的に理解できるようまとめている。

真偽値を返す関数はプログラム内での条件判定を簡潔にし、コードの可読性を向上させる重要なツールです。

関数を利用することで、同じ判定処理を繰り返し使う場合でも効率的にコードを再利用できます。

ぜひ自分のプログラムにも取り入れてみてください。

真偽値を返す関数の練習問題

入力された整数が偶数か奇数かを判定するプログラムを作成してください。

このプログラムでは真偽値を返す関数を使用し、入力された数値を判定します。

プログラムが繰り返し実行されるようにし、空の入力があった場合に終了するようにしてください。

正しく数値を入力しなかった場合には、エラーメッセージを表示する必要があります。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • readLine を使用してユーザーから数値を入力すること。
  • 入力が空または無効な場合にはプログラムを終了すること。
  • 入力された値を整数に変換し、その値が偶数であるかを判定する関数を作成すること。
  • 偶数か奇数かを判定して結果を日本語で出力すること。
  • 無効な入力があった場合には、エラーメッセージを出力すること。
  • プログラムは繰り返し実行されるようにし、空白の入力があれば終了すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

数値を入力してください(終了するには空白でEnterを押してください):
4
4 は偶数です。
3
3 は奇数です。
abc
無効な入力です。数値を入力してください。

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:main関数の定義
  □ 「数値を入力してください(終了するには空白でEnterを押してください):」を出力
  □ while文の開始(無限ループの設定)
  □ □ ユーザー入力を取得して変数inputに代入
  □ □ if文でinputnullまたは空かどうかを判定
  □ □ □ trueの場合「プログラムを終了します。」を出力し、ループを終了
  □ □ try-catch文を使用して例外処理を設定
  □ □ □ tryブロック内で入力を整数型に変換し、変数numberに代入
  □ □ □ if文でisEven関数を呼び出してnumberが偶数かどうかを判定
  □ □ □ □ trueの場合、「{number} は偶数です。」を出力
  □ □ □ □ falseの場合、「{number} は奇数です。」を出力
  □ □ □ catchブロックでNumberFormatException例外を処理し、「無効な入力です。数値を入力してください。」を出力
2:isEven関数の定義
  □ 引数numberが2で割り切れる場合にtrueを返す

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

// メイン関数の開始
fun main() {
    // 数値を入力して偶数か奇数かを判定するプログラム
    println("数値を入力してください(終了するには空白でEnterを押してください):")

    while (true) {
        // 入力を受け取る
        val input = readLine()

        // 入力がnullまたは空の場合、プログラムを終了
        if (input.isNullOrEmpty()) {
            println("プログラムを終了します。")
            break
        }

        try {
            // 入力を数値に変換
            val number = input.toInt()

            /*【穴埋め問題1】
            ここで偶数かどうかを判定する関数を呼び出し、
            numberが偶数であれば「〇〇は偶数です。」と表示し、
            奇数であれば「〇〇は奇数です。」と表示するif文を書いてください。
            */
        } catch (e: NumberFormatException) {
            // 数値以外の入力があった場合のエラーメッセージ
            println("無効な入力です。数値を入力してください。")
        }
    }
}

/*【穴埋め問題2】
ここでnumberが偶数かどうかを判定する関数を定義してください。
関数名はisEvenで、戻り値はBoolean型にしてください。
また、偶数の場合はtrue、奇数の場合はfalseを返すようにしてください。
*/

以上がこの問題の穴埋めコードです。

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



練習問題の解答と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

// メイン関数の開始
fun main() {
    // 数値を入力して偶数か奇数かを判定するプログラム
    println("数値を入力してください(終了するには空白でEnterを押してください):")

    while (true) {
        // 入力を受け取る
        val input = readLine()

        // 入力がnullまたは空の場合、プログラムを終了
        if (input.isNullOrEmpty()) {
            println("プログラムを終了します。")
            break
        }

        try {
            // 入力を数値に変換
            val number = input.toInt()

            // 偶数かどうかを判定する関数を呼び出す
            if (isEven(number)) {
                println("$number は偶数です。")
            } else {
                println("$number は奇数です。")
            }
        } catch (e: NumberFormatException) {
            // 数値以外の入力があった場合のエラーメッセージ
            println("無効な入力です。数値を入力してください。")
        }
    }
}

// 偶数かどうかを判定する関数
// 入力された整数が偶数の場合は true、奇数の場合は false を返します
fun isEven(number: Int): Boolean {
    return number % 2 == 0
}

正解コードの解説

今回は入力された数値が偶数か奇数かを判定するプログラムを作成しました。

このプログラムの特徴は「真偽値を返す関数」を利用して、偶数か奇数かをシンプルに判定できる点です。

以下にコードをブロックごとに分解し、詳しく解説します。

メイン関数の開始

fun main() {
    println("数値を入力してください(終了するには空白でEnterを押してください):")
  • fun main():Kotlinプログラムのエントリーポイント。ここからプログラムが開始されます。
  • println:文字列を画面に出力する関数です。ここではユーザーにプログラムの使い方を説明するメッセージを表示します。

繰り返し処理と入力の処理

while (true) {
    val input = readLine()
    if (input.isNullOrEmpty()) {
        println("プログラムを終了します。")
        break
    }
  • while (true):無限ループを作成します。このループは特定の条件(ここでは空白入力)が満たされるまで続きます。
  • readLine():ユーザーの入力を取得します。
  • isNullOrEmpty():入力が空かどうかを確認するための便利な関数です。空の入力があるとループが終了します。

入力を数値に変換し判定

    try {
        val number = input.toInt()
  • toInt():文字列を整数に変換します。入力が数字でない場合には例外が発生します。
  • try:例外処理を行うための構文。安全に数値変換を行うために使用します。
        if (isEven(number)) {
            println("$number は偶数です。")
        } else {
            println("$number は奇数です。")
        }
  • isEven(number):後述する「真偽値を返す関数」を利用して、数値が偶数かどうかを判定します。
  • if-else:条件分岐処理を行います。trueの場合は「偶数です」と表示し、falseの場合は「奇数です」と表示します。

無効な入力への対応

    } catch (e: NumberFormatException) {
        println("無効な入力です。数値を入力してください。")
    }

catch:例外が発生した場合の処理。ユーザーが数値以外を入力したときにエラーメッセージを表示します。

偶数判定を行う関数

fun isEven(number: Int): Boolean {
    return number % 2 == 0
}
  1. fun isEven(number: Int): Boolean:この関数は、与えられた数値が偶数かどうかを判定します。
    • 引数 number は整数型。
    • 戻り値の型は Boolean で、true(偶数)または false(奇数)を返します。
  2. return number % 2 == 0
    • number % 2 は、数値を2で割った余りを計算します。
    • 余りが0であれば偶数なので true を返し、そうでなければ false を返します。

まとめ

このプログラムではKotlinの基本文法である「関数の定義」「条件分岐」「例外処理」「入力と出力」を学ぶことができます。

特に「真偽値を返す関数」を用いることで、判定処理を簡潔に表現できる点に注目してください。

関数を使用することでコードの可読性や再利用性が向上します。

この解説を通じてKotlinのプログラム構造と基本的な関数の作り方を理解し、応用できるスキルを身につけてください!

<<前のページ Kotlin記事一覧 次のページ>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Kotlinのテキスト&問題集トップへ戻る
    トップページへ戻る