【Kotlin】レッスン1-02:変数と定数を理解しよう

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

この記事で学べる知識:変数と定数

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

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

Kotlinの「変数と定数」とは

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



Kotlinではプログラム内でデータを管理・操作するために「変数」と「定数」を使います。

それぞれの役割や使い方を学ぶことで、プログラムを効率的に書くことができるようになります。

また、変数や定数が扱うデータの種類(基本データ型)についても理解することが大切です。

本記事ではそれらの基本的な知識を解説します。

基本データ型とは?

プログラムは様々な種類のデータを扱います。

例えば、数字、文字、文章(文字列)、真偽(正しい/間違っている)などが挙げられます。

このようなデータを正しく管理するため、Kotlinでは「データ型」という仕組みが用意されており、全てのデータに対してそれがどのデータ型に分類されるものかを指定する必要があります。

基本データ型には以下のものがあります。

  • Int型(整数型): 整数
  • Double型(少数型):小数点を含む数値
  • Char型(文字型): 単一の文字
  • String型(文字列型): 複数の文字が連なった文章
  • Boolean型(真偽値型): 真(true)か偽(false)か

これらの型を指定することで、プログラムがどのようにデータを扱うべきかを理解します。

Kotlinでは型を明示することもできますが、自動で型を推測してくれる便利な仕組みもあります(後述)。

変数と定数とは?

変数とは、値を格納し、必要に応じて変更できる箱のようなものです。

たとえば「年齢」を保存しておき、あとで誕生日を迎えた際にその値を増やすような場合に使います。

一方定数は一度値を設定すると変更できない箱です。

例えば円周率(3.14159)のように決して変わることがない値を扱う場合に使います。

定数を使うことで意図しない変更を防ぎ、プログラムの信頼性を向上させることができます。

変数の宣言

変数を宣言するには、varキーワードを使用します。

var number: Int = 10 //整数型の変数numberを定義し、数値10を代入
number = 20 // 10が代入されたnumberに20を再代入(上書き)
  • 「ver number」:numberという名前の変数を定義しています。
  • 「: Int」:変数numberはInt型であると定義しています。
  • 「=」:この=は代入演算子といい、右辺のデータを左辺に格納します。数学の「=(右辺と左辺の大きさが等しい)」とは意味が異なる点に注意しましょう。
  • 「number = 20」:nunberの値を20に変更しています。

定数の宣言

定数を宣言するにはvalキーワードを使用します。

val pi: Double = 3.14159 //piという少数型の定数を定義し、数値3.14159を代入
pi = 3.0 // エラー: 再代入はできません
  • 「vel pi」:の部分ではpiという名前の定数を定義しています。
  • 「: Double」:の部分では定数piはDouble型であると定義しています。
  • 「=」:代入演算子。定数piに3.14159を代入しています。

定数はプログラム中で変更する必要がない値を扱う際に使用します。

2行目の「pi=3.0」の部分でpiに値を再代入しようとしていますが、piは定数なので値の変更はできず、このまま実行するとエラーとなります。

これにより、意図しない変更を防ぐことができます。

変数と定数の使用例

以下は変数と定数の具体的な使用例です。

fun main() { //丸暗記構文
    val greeting: String = "こんにちは、Kotlin!" // 文字列型の定数greetingに「こんにちは、Kotlin!」を代入
    var age: Int = 25 // 整数型の変数ageに25を代入

    age = "こんにちは" //エラー:ageは整数型なので、文字列を代入しようとするとエラーが出ます

    println(greeting) // 出力: こんにちは、Kotlin!
    print("年齢の初期値: ")
    println(age)  // 出力: 年齢の初期値: 25

    age = 26
    print("更新後の年齢: ")
    println(age)  // 出力: 更新後の年齢: 26
}

型推論

Kotlinの強力な特徴のひとつに「型推論」がります。これにより型を明示しなくてもコンパイラが自動的に型を判断します。

val message = "Hello" // String型と推論
var count = 42        // Int型と推論

この仕組みを利用することでコードが簡潔になり、読みやすさが向上します。

ただし、複雑なコードでは型を明示したほうが良い場合もありますので、状況に応じて使い分けましょう。

まとめ

Kotlinではデータを管理するために変数と定数を使い分けます。

変数は値を変更可能で、定数は不変の値を扱います。またKotlinは強力な型推論機能を持ち、初心者でも使いやすい設計になっています。

まずは変数や定数を使って基本的なプログラムを作り、慣れていきましょう。

変数と定数の練習問題:ユーザー入力に応じたメッセージを作成しよう

変数と定数を使った簡単なプログラムを作成しましょう。

このプログラムではユーザーから名前を入力してもらい、挨拶を表示します。また定数を使用して固定メッセージを作成します。

さらに変数の値を変更し、新しい名前で再度挨拶をする流れを学びます。

この問題の要件

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

  • 定数 greeting に「ようこそ、Kotlinの世界へ!」という文字列を格納し、これを画面に表示すること。
  • 変数 userName を宣言し、ユーザーに名前を入力してもらい、この値を格納すること。
  • 入力された名前を使い、「こんにちは、[名前] さん!」というメッセージを表示すること。
  • 変数 userName の値を再代入し、新しい名前を入力してもらい、「新しい名前は [新しい名前] ですね!」というメッセージを表示すること。
  • 定数と変数の違いを理解するため、定数に再代入を試みるコードを書き、エラーとなることを確認すること。

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

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

ようこそ、Kotlinの世界へ!
あなたの名前を入力してください:
田中
こんにちは、田中 さん!
名前を変更したい場合は新しい名前を入力してください:
佐藤
新しい名前は 佐藤 ですね!

この問題を解くヒント

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

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

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

1:main関数の定義
  □ 定数 greeting を宣言し、「ようこそ、Kotlinの世界へ!」という文字列を格納
  □ greeting を画面に出力
□ greeting の値を変更しようとし、エラーとなることを確認
□ 変数 userName を宣言

  □ 「あなたの名前を入力してください:」という文字列を画面に出力
  □ readLine を用いてユーザーからの入力を取得し、変数 userName に格納
  □ 入力された名前を使い、「こんにちは、[名前] さん!」という文字列を出力
  □ 「名前を変更したい場合は新しい名前を入力してください:」という文字列を画面に出力
  □ readLine を用いて新しい名前を取得し、変数 userName に再代入
  □ 再代入された名前を使い、「新しい名前は [新しい名前] ですね!」という文字列を出力

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



練習問題の解答と解説

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

正解コードの例

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

fun main() {
    // 定数の例: 変更できない値を格納します
    val greeting: String = "ようこそ、Kotlinの世界へ!" // 定数は変更できません
    println(greeting) // 定数の値を表示します

    // 定数に再代入しようとするとエラーになります(以下のコードはコメント化されています)
    // greeting = "再代入しようとするとエラーになります!" // コンパイルエラー

    // 変数の例: 変更可能な値を格納します
    var userName: String // ユーザー名を保存する変数を宣言します
    println("あなたの名前を入力してください:") // 入力を促すメッセージを表示します

    // ユーザーから名前を入力して変数に格納
    userName = readLine()
    println("こんにちは、") // 入力された名前を使って挨拶を表示します
   print(userName)
   println(" さん!")

    // 変数の再代入
    println("名前を変更したい場合は新しい名前を入力してください:")
    userName = readLine()   // 新しい名前を入力し再代入
    print("新しい名前は ") // 更新された名前を表示します
    print(userName)
    println(" ですね!")
}

正解コードの解説

このコードは「変数」と「定数」の使い方を学ぶことを目的としています。

プログラムは定数と変数の役割や、それぞれの特性を理解できるように設計されています。

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

定数の定義と利用

val greeting: String = "ようこそ、Kotlinの世界へ!"
println(greeting)
  • 定数(val): 一度設定した値を変更できないデータを格納します。このコードではgreetingという定数を定義し、固定の文字列「ようこそ、Kotlinの世界へ!」を格納しています。
  • ポイント: 定数はプログラムの中で変更されることがない値に使用します。安全で意図しない変更を防ぐため、積極的に活用しましょう。

定数への再代入のエラー

// greeting = "再代入しようとするとエラーになります!" // コンパイルエラー

定数には再代入することができません。このようなコードを記述するとコンパイルエラーが発生します。

定数の変更不可性がエラーを防ぎ、プログラムの信頼性を高めます。

変数の定義と利用

var userName: String
println("あなたの名前を入力してください:")
userName = readLine()
print("こんにちは、")
print(userName)
println(" さん!")
  • 変数(var): 値を自由に変更できるデータを格納します。このコードではuserNameという変数を定義し、ユーザーから入力された名前を格納しています。
  • readLine()の利用: ユーザーが入力したデータを取得します。
  • ポイント: 変数は変更が必要なデータに使用します。ここでは、ユーザー名を保存し、変更が可能である必要があります。

変数の再代入

println("名前を変更したい場合は新しい名前を入力してください:")
userName = readLine()
print("新しい名前は )
print(userName)
println(" ですね!")
  • 変数userNameに新しい値を再代入しています。varを使用して定義された変数は、後から値を変更できます。
  • ポイント: 再代入が可能な変数は柔軟性が高い一方で、意図しない変更を防ぐために使用には注意が必要です。

まとめ

このコードでは、Kotlinにおける「変数」と「定数」の基本的な使い方を学びました。

  • 定数(val): 値を変更できないデータを格納するため、安全に使用できます。
  • 変数(var): 値を変更できるデータを格納し、柔軟なプログラムを作成するために使用されます。

学びのポイント:

  • 定数を活用してエラーを防ぎ、プログラムの信頼性を向上させる。
  • 変数を使って柔軟なデータ操作を実現する。
  • ユーザー入力を通じて、変数と定数の違いを実感する。

このコードを実行しながら、「どの場面で定数を使うべきか」「どの場面で変数を使うべきか」を意識してみてください。

これがプログラムの設計力向上につながります!

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

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

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

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






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