未経験OK!最速Kotlin&androidアプリ開発入門その4 変数とは②

目次

  1. 背景
  2. 型とは?
  3. 型の種類
  4. なぜ型があるのか
  5. Kotlinでの型の使い方
    1. Int(整数型)
    2. String型(文字列)
  6. 数字と文字列
    1. 余談
  7. まとめ
  8. 関連記事

背景

こんにちは。 かりんとうマニア(@karintozuki)です。

前回は変数を勉強しましたが、
今回は変数を使う上では欠かせない概念、型について説明していきます。

型とは?

Kotlinに限らずプログラミング言語には
型、もしくはデータ型といわれる概念があります。

これは変数がどんな種類のデータを扱っているかを示したものになります。

例えば、この変数は整数型だ、といったときは、
その変数の値は常に整数が入っている、ということになります。

ちなみに英語ではタイプ(Type)といいます。
英語の方が変数のタイプということで意味的には分かりやすいかもしれません。

型の種類

では型にはどんなものがあるのか見ていきましょう。

代表的なものには以下のものがあります。

  • 文字列
  • 整数
  • 実数(少数点以下も扱える)
  • 日付

このほかにもたくさん型はあるのですが、
この入門では上の4つをよく使うことになると思います。

なぜ型があるのか

型があるとなぜ良いのでしょうか?

変数に型がついていることで、
その変数でできることとできないことがはっきりします。

データの種類によってできることとできないことがある、というのは
プログラミングに限った話ではありません。

例えば、「りんごの個数とみかんの個数を合わせて」と言われたら、
個数は数字なので、足し算をすれば良いんだな、と分かりますね。

でも「あなたの苗字と私の苗字を合わせて」と言われたら
文字は足し算なんてできませんから文字と文字をくっつけることになります。

また、「数字の5と数字の3を掛け算して」と言われたら簡単にできますが、
「あなたの苗字と名前を掛け算して」と言われたら、答えに困りますよね?

コンピュータからしても同じで、プログラミングをするときは
このデータは文字、このデータは数字、と決めておくことで、
どんな処理をすれば良いかコンピュータが分かるわけです。

Kotlinでの型の使い方

それでは説明が続きましたが、プログラミングをしていきましょう。
今日は以下の二つの型を紹介します。

  • Int(整数型)
  • String(文字列型)

プログラムに日本語でこれは整数です!とか書くわけにいかないので、
型には英語で名前がついています。

整数を表す型の名前がInt、
文字列を表す型の名前がStringとなっています。

この二つはよく使うので、とりあえず覚えておきましょう。

Int(整数型)

Int型の変数には整数を入れることができます。

前回、変数を宣言したコードはこんな感じでした。

変数とは②
1
2
3
fun main() {
var hensu = 1
}

実はKotlinは変数の型を代入した値から推測して型をつけてくれいます
この場合、代入したのが1なので、Int型を勝手につけてくれているんですね。

でも、せっかく勉強したので、
自分でこの変数はInt型なんだぞ!と宣言してみましょう。

Int型と教えてあげるときはこんな書き方をします。
実際にプログラムを書いてみましょう。

変数とは②
1
2
3
fun main() {
var hensu:Int = 1
}

この部分に注目してみてください。

1
hensu:Int

変数名の後に:(コロン)をつけて、
その後にIntと型名を書きます。

この変数はInt型です、と宣言しています。

それでは問題です。

問題
先ほどのプログラムに追加して、
hensu2という名前のInt型の変数に
数字の2を代入してみてください。
その際にhensu2がInt型であることを明示するようにしてください。

できましたか?

変数とは②
1
2
3
4
fun main() {
var hensu:Int = 1
var hensu2:Int = 2
}

String型(文字列)

次はStringです。

例として名前を値としてもつString型の変数nameを宣言してみます。

変数とは②
1
2
3
fun main() {
var name:String = "佐藤太郎"
}

先ほどとほとんど同じですね。

1
name:String

この部分で、nameはString型の変数だ!ということを書いています。

少し違うのは=(イコール)の右側です。
何か先ほどとの気付きませんか?

そうです、値が””(ダブルクオーテーション)で囲われていますね。

1
"佐藤太郎"

Kotlinや多くのプログラム言語では、
文字列として値を書くときは””(ダブルクオーテーション)で囲う、というルールがあります。

問題
先ほどのプログラムに追加して、
name2という名前のString型の変数に
「鈴木花子」という値を代入してみてください。
もちろんString型であることを明示するようにしてください。

できましたか?
正解はこちらです。

変数とは②
1
2
3
4
fun main() {
var name:String = "佐藤太郎"
var name2:String = "鈴木花子"
}

数字と文字列

文字列を宣言するときは””で囲う、という話をしました。
なぜこんなことをするのでしょうか。

例えば、中身は5なんだけど文字として扱いたい、というときがあったりします。
そんなときに””がないと数字として認識されてしまいます。

ちょっとこのコードをPlaygroundで実行してみてください。

変数とは②
1
2
3
fun main() {
var moji:String = 5
}

こんなエラーが出ますね。

これはString型の変数なのにIntの値を入れようとしたためです。

ではここで、次の問題です。

問題
上のコードでString型の変数mojiに、
文字列として5を入れるコードに直してください。

できましたか?

Int型の値は入れることができないので、
“”で囲ってString型にしてあげれば良いですね。

変数とは②
1
2
3
fun main() {
var moji:String = "5"
}

このように型を間違うと正しい結果にならなかったり、
エラーが出たりしてしまいます。

ところで、今日勉強したvar name:Stringのように変数の型を明記する方法ですが、
普通は省略できるので、書かないことが多いです。

しかし、はじめのうちは変数が何の型なのかを把握することはとても大事です。

なので、この入門の変数宣言は型を明記する方法で書いていこうと思います。

余談

先ほど体験したように、
プログラミングでは何かエラーが発生したときに、エラーメッセージが出ます

そして残念なことにエラーメッセージの大体が英語です泣。

しかし、このエラーメッセージは何が間違っているか教えてくれる手がかりになります。

エラーが起きたときはまず、
エラーメッセージを読んで、
それでも間違いが分からなければメッセージをGoogle検索してみましょう。

同じように困ったことがある人が解決方法を載せてくれていたりします。

まとめ

今日は変数の型について勉強しました。
ちょっとずつプログラミングっぽくなってきました。

次回はもっとプログラミングっぽく、
コンピュータに計算させる方法を紹介しますので、
お楽しみに!

それじゃ今日はこの辺で。

関連記事

この入門の記事一覧はこちらです。
未経験OK!最速Kotlin&androidアプリ開発入門