【Kotlin】レッスン1-03:四則演算をしよう

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

この記事で学べる知識:算術演算子

この記事の練習問題を解くために必要な知識:
メイン関数入力と出力の基本コメントの書き方変数と定数算術演算子Null安全性文字列の連結と埋め込み文字列操作import文

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

Kotlinの「算術演算子」とは

ここでは算術演算子の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。



算術演算子はプログラム内で計算を行うために使用される重要なツールです。

足し算や引き算などの基本的な操作から、効率的な計算を可能にする複合演算子まで、Kotlinでは多くの算術演算子が用意されています。

本記事ではそれらの使用方法を初心者向けにわかりやすく解説します。

算術演算子の基本

Kotlinの算術演算子は以下のような基本操作をサポートしています。

  • + (足し算):例 val sum = 5 + 3 → 結果: 8
  • - (引き算):例 val difference = 5 - 3 → 結果: 2
  • * (掛け算):例 val product = 5 * 3 → 結果: 15
  • / (割り算):例 val quotient = 10 / 3 → 結果: 3
  • % (剰余):例 val remainder = 10 % 3 → 結果: 1

これらは整数同士、あるいは浮動小数点数同士で使用できます。

なお、割り算は余りを切り捨てて表示し、剰余は割り算の余りを表示します。

増減演算子

++-- は、変数をインクリメント(1増やす)またはデクリメント(1減らす)するための演算子です。

var count = 5
count++  // countは6になる
count--  // countは5に戻る

これらはループ処理などで頻繁に使用される便利な演算子です。

代入演算子の活用

算術演算子と代入演算子を組み合わせた以下のような書き方も可能です:

  • +=:例 var num = 5; num += 3num の値は 8 になる
  • -=:例 num -= 2num の値は 6 になる
  • *=:例 num *= 2num の値は 12 になる
  • /=:例 num /= 3num の値は 4 になる

これらを活用すると、簡潔で可読性の高いコードを書くことができます。

※+=の説明にある;はそのコードの終了を意味し、通常は改行により省略されています。すなわち+=の例は以下のコードと同義です。

var num = 5
num += 3

文字列から数値への変換

Kotlinでは、ユーザーからの入力を受け取る際に readLine() を使用します。

しかしreadLine() で取得した値は文字列として扱われます。そのため数値を計算に使用するには文字列を数値に変換する必要があります。

例:ユーザーが数値を入力した場合でも、その値は文字列として受け取られます。

println("数値を入力してください:")
val input = readLine()  // 入力: 42 (文字列として扱われる)

このコードでは、定数inputに文字列の42を格納しています。

このままでは計算に使えないため、toInt() または toDouble() を使用して変換を行います。

val number = input?.toInt() //定数numberにinputの値を整数型に変換して代入
println(number + 10)        // 出力: 52

なお、この例ではreadLine() の結果が空の場合(何も入力せずにエンターを押した場合)や、数値に変換できない文字列(abc等)の場合、エラーが発生します。

このエラーを回避するための「Null安全性」については、次の記事で詳しく解説します。

まとめ

Kotlinの算術演算子は、プログラミングにおける計算処理を簡単に行える便利なツールです。

本記事では基本的な算術演算子、増減演算子、代入演算子、さらに文字列から数値への変換方法を紹介しました。

これらを理解することで、効率的で柔軟なコードが書けるようになります。

ぜひ演習問題で練習し、身につけてください。

算術演算子の練習問題:四則演算をしよう

ユーザーから2つの整数を入力してもらい、それらの合計、差、積、商を出力するプログラムを作成しましょう。

この問題の要件

以下の要件に従ってプログラムを作成してください。

  • readLine()を使用してユーザーから入力を取得すること。
  • 入力された値を整数に変換すること。
  • 2つの数値の合計、差、積、商を計算し、結果を表示すること。
  • 2つ目の数値が0の場合、0で割ることはできないためエラーとなる。

ただし、以下のような実行結果となること。

----- ↓出力される結果の例↓ -----

1つ目の整数を入力してください: 10
2つ目の整数を入力してください: 5
合計: 15
差: 5
積: 50
商: 2

この問題を解くヒント

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

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

正解のコードは上から順に以下のような構成となっています。

1:main関数の開始
  □ 「1つ目の整数を入力してください: 」と出力
  □ ユーザーから入力された値を整数に変換し、変数num1に代入
  □ 「2つ目の整数を入力してください: 」と出力
  □ ユーザーから入力された値を整数に変換し、変数num2に代入
  □ num1とnum2の合計を計算し、変数sumに代入
  □ num1からnum2を引いた差を計算し、変数differenceに代入
  □ num1とnum2の積を計算し、変数productに代入
  □ num1をnum2で割った商を計算し、変数quotientに代入
  □ 合計を「合計: 」という文字列とともに出力
  □ 差を「差: 」という文字列とともに出力
  □ 積を「積: 」という文字列とともに出力
  □ 商を「商: 」という文字列とともに出力

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

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

fun main() {
    print("1つ目の整数を入力してください: ")
    /* 【穴埋め問題1】 
       ここでユーザーから入力を受け取り、それを整数に変換してnum1に代入するコードを書いてください。
    */

    print("2つ目の整数を入力してください: ")
    /* 【穴埋め問題2】 
       ここでユーザーから入力を受け取り、それを整数に変換してnum2に代入するコードを書いてください。
    */

    /* 【穴埋め問題3】 
       ここでnum1とnum2の合計を計算し、変数sumに代入するコードを書いてください。
    */

    /* 【穴埋め問題4】 
       ここでnum1からnum2を引いた結果を計算し、変数differenceに代入するコードを書いてください。
    */

    /* 【穴埋め問題5】 
       ここでnum1とnum2の積を計算し、変数productに代入するコードを書いてください。
    */

    /* 【穴埋め問題6】 
       ここでnum1をnum2で割った結果を計算し、変数quotientに代入するコードを書いてください。
    */

    print("合計: ")   // 結果を出力
    println(sum)
    print("差: ")     // 結果を出力
    println(difference)
    print("積: ")     // 結果を出力
    println(product)
    print("商: ")     // 結果を出力
    println(quotient)
}

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

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

練習問題の解答と解説

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

正解コードの例

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

fun main() {
    print("1つ目の整数を入力してください: ")
    val num1 = readLine().toInt() // ユーザーからの入力を受け取る

    print("2つ目の整数を入力してください: ")
    val num2 = readLine().toInt() // ユーザーからの入力を受け取る

    val sum = num1 + num2 // 合計を計算
    val difference = num1 - num2 // 差を計算
    val product = num1 * num2 // 積を計算
    val quotient = num1 / num2 // 商を計算

    print("合計: ")   // 結果を出力
    println(sum)
    print("差: ")     // 結果を出力
    println(difference)
    print("積: ")     // 結果を出力
    println(product)
    print("商: ")     // 結果を出力
    println(quotient)
}

正解コードの解説

このプログラムはユーザーに2つの整数を入力してもらい、それらを使って基本的な算術演算(足し算、引き算、掛け算、割り算)を行い、その結果を出力するシンプルなコードです。

以下のブロックごとに解説します。

ユーザーから入力を受け取る部分

print("1つ目の整数を入力してください: ")
val num1 = readLine().toInt()

print("2つ目の整数を入力してください: ")
val num2 = readLine().toInt()
  • readLine() 関数を使ってキーボードから文字列形式の入力を取得します。
  • .toInt() を使用して文字列を整数に変換しています。
  • 注意点:ユーザーが数値以外の文字列を入力するとプログラムがエラーを起こします。この問題の回避方法については次回の記事で解説します。

算術演算を行う部分

val sum = num1 + num2
val difference = num1 - num2
val product = num1 * num2
val quotient = num1 / num2

Kotlinでは以下の算術演算子を使用して基本的な計算を行います。

  • +:足し算(例:val sum = num1 + num2
  • -:引き算(例:val difference = num1 - num2
  • *:掛け算(例:val product = num1 * num2
  • /:割り算(例:val quotient = num1 / num2

計算結果を出力する部分

print("合計: ")     // 結果を出力
println(sum)
print("差: ")       // 結果を出力
println(difference)
print("積: ")       // 結果を出力
println(product)
print("商: ")       // 結果を出力
println(quotient)

print 関数とprintln 関数を使って計算結果を画面に出力します。

まとめ

このコードを通じてKotlinでのユーザー入力、算術演算子の使い方、計算結果の出力方法を学びました。

算術演算子はプログラミングで最も基本的な操作の一つであり、これを理解することで、より複雑な計算処理を扱う準備が整います。

次回の記事では、入力値に対するエラー処理や安全なプログラムの設計方法について学びます。

ぜひ、実際に手を動かしてこのコードを試してみてください!

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

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

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

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






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