【Kotlin】レッスン1-3:算術演算子を使おう|四則演算と文字列の数値変換

ながみえ

一つ前のページでは変数と定数について学習しました。

今回は 算術演算子 について見ていきましょう。

Lesson1:基礎文法編
 ・Lesson1-1:Kotlin学習の入り口|初めてコードを書いてみよう
 ・Lesson1-2:変数と定数を理解しよう
 ・Lesson1-3:四則演算をしよう ◁今回はココ
 ・Lesson1-4:Null安全性を理解しよう
 ・Lesson1-5:文字列の連結と埋め込みを理解しよう
 ・Lesson1-6:文字列を操作しよう
 ・Lesson1-7:import文を理解しよう
 ・確認問題1-☆1:ランダムパスワードを生成しよう
Lesson2:制御構造編
Lesson3:関数編
Lesson4:コレクション編
Lesson5:オブジェクト指向編

<<前のページ

学習記事一覧

次のページ>>

演算子入門|四則演算・増減・代入・型変換まで

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

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

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

四則演算の基本|足し算・引き算・掛け算・割り算を学ぼう

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

演算子使用コード例コードの意味
+ (足し算)val sum = 5 + 3定数 sum に8を代入
- (引き算)val difference = 5 - 3定数 difference に2を代入
* (掛け算)val product = 5 * 3定数 product に15を代入
/ (割り算)val quotient = 10 / 3定数 quotient に3を代入
% (剰余)val remainder = 10 % 3定数 remainder に1を代入

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

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

増減演算子とは?|++ と — の使い方をマスター

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

var count = 5	// 変数countに5を代入
count++			// countは6になる
count--			// countは5に戻る

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

代入演算子の応用|+= や -= を使ってコードを簡潔に

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

演算子使用コード例コードの意味
=var num = 5変数numに5を代入
+=num += 3num の値に3を加える
-=num -= 2num の値から2を引く
*=num *= 2num の値に2をかける
/=num /= 3num の値を3で割る

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

文字列から数値への型変換|toIntメソッドの使い方

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

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

以下のコードを見てみましょう。

println("数値を入力してください:")
val number = readLine()	// 数値を入力しても文字列となる
val sum = number + 1	// 文字列と数値は計算できないため、ここでエラーとなる

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

たとえ「100」のように数値のつもりで代入しても、readLine関数は「1と0と0が並んだ文字列」として認識してしまいます。

このままでは計算に使えないため、toIntメソッド または toDoubleメソッド を使用してデータの型を変換しましょう。

val number = readLine.toInt()	// 入力値を整数型に変換して定数numberに代入
println(number + 10)			// 計算結果を出力

toIntメソッドはreadLine関数とドット(.)で繋ぐことで使用できます。

「メソッドとは何か」と言う点についてはLesson5で学習しますので、ここでは使えるようになれば十分です。

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

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

まとめ|算術演算子の基礎をおさらいしよう

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

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

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

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

練習問題|四則演算プログラムを作ろう

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

この問題の要件

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

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

※readoLine()の部分は、今回は「readLine()?.toIntOrNull() ?: 0」と書いて下さい。readLine()の後ろの部分の詳細はLesson1-4で詳細に学習します。

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

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

この問題を解くヒント

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

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

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

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

Q
ヒント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)
}

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

この問題の解答と解説

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

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

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

    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)
}
Q
正解コードの解説

コードをブロックごとに分割して解説します。

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

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

print("2つ目の整数を入力してください: ")
val num2 = readLine()?.toIntOrNull() ?: 0
  • readLine() 関数を使ってキーボードから文字列形式の入力を取得します。
  • ?.toIntOrNull() ?: 0 の部分は入力を整数値に変換しています。

算術演算を行う部分

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

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

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

計算結果を出力する部分

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

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

まとめ

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

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

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

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

Q
サイト改善アンケート & ご指摘/ご質問

本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などを アンケート 形式でお伺いしています。

また記事の内容に関する ご指摘ご質問 もお待ちしています。

1.このサイトをどのように活用していますか?また、今後どのように活用したいですか?
5.気になっているサービス・商品があれば教えてください。
※ 特定の記事に関する内容の場合は、記事番号(レッスン〇-〇)をご記入願います。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました