どうもこんにちは!
サバ缶(@tech_begin)です。
前回、変数の宣言・初期化・上書きについて学びました。
まだ理解が浅いという方は、ぜひこちらもご覧くださいね!
さて、今回はその変数に入れるデータの種類である「データ型」について学んでいきましょう。
データ型
変数の中に入れるデータの種類を「データ型」と呼びます。
たくさん種類がありますが、一度に全てを覚える必要ありません。
繰り返しコードを書いて、少しずつ覚えていきましょう!
分類 | 型名 | 中身 | 宣言の例 | 頻度 |
---|---|---|---|---|
整数 | long | 大きな整数 | long salesApple; //Appleの売り上げ | |
int | 普通の整数 | int salary; //給料 | ◎ | |
short | 小さな整数 | short age; //年齢 | ||
byte | さらに小さな整数 | byte glasses; //メガネの所持数 | ||
小数 | double | 普通の小数 | double sight; //視力 | ○ |
float | 少し曖昧でもいい小数 | float weight; //体重 | ||
真偽値 | boolean | trueかfalse | boolean isAte //食べたか否か | |
文字 | char | 1文字 | char initial; //頭文字 | |
文字列 | String | 文字の並び(単語) | String name; //自分の名前 | ◎ |
現場によって使用される頻度に違いはありますが、
基本的に「int」「double」「String」くらいしか使いません。
整数のデータ型(long, int, short, byte)
上の表で「大きいとか小さいとか何いってるんだ?」と思われたと思います。
同じ整数なのになぜ異なる種類があるのでしょうか。
それは変数の型によって、メモリを確保する領域が異なるためです。
以下の図でイメージしてみましょう。
赤色の枠で囲っているのが、「変数が確保したメモリ領域」です。
変数の型によって、この確保するメモリの量が異なります。
以下で、詳しく見ていきましょう!
byte型
byte型の変数を宣言したら、メモリに1byte(8bit)の領域が確保されます。
従って、-128〜127の間の値を代入することができます。
計算式:2の8乗 = 256(が扱える値の範囲)
※正の数が1少ないのは、0も含まれるためです。
Byte(バイト)とBit(ビット)についての記事は、現在準備中です。
<バイトとビットの関係性>
long型
long型の変数を宣言すると、メモリに8byte(64bit)の領域が確保されます。
byte型の8倍の値を代入できる…と思いますよね。
実際には、その「8乗です」。
計算式:2の8乗の8乗 = 18,446,744,073,709,551,616
= -9,223,372,036,854,775,808〜9,223,372,036,854,775,807
正の数が1少ないのは、0も含まれるためです。値の大きさによって使用する型を使い分けましょう。
業務内容によっては1bit単位でのメモリ効率化を求められることもあることでしょう。
しかし、現代のコンピュータの処理能力が向上したこともあり、ほとんどのサービス・アプリケーション開発では特に意識する必要ありません。
「整数を扱うならint型を使う」くらいの認識で大丈夫です。
ほかにも変数の型があることは、くれぐれも忘れないようにしましょう!
小数のデータ型(double, float)
小数を含む数値を代入するためのデータ型です。
「浮動小数点数方式」というものを使って管理しているため「浮動小数点数」とも呼ばれます。
double
はfloat
よりも多くのメモリ領域を確保しますが、厳密な計算を可能とします。
以下、注意点です。
- 金銭が絡む計算は
double
またはfloat
を使用しない。 - 浮動小数点方式を使用するこのデータ型は誤差を生むため、積み重なり大きな誤差を生む恐れがある
- 参考:https://works.forward-soft.co.jp/blog/detail/10086
メモリが限られているシステムでの開発など、特別な事情がない場合はdouble
を使っておけば問題ないです。
しかし、使用する場合は注意しておきましょう。
真偽値のデータ型(boolean)
「真か偽」「YESかNO」のように二極化する値を入れるためのデータ型です。
中身は「True」と「False」のどちらかしか入らない特別なデータ型です。
Trueは「真」、Falseは「偽」という意味なので「真偽値」と呼ばれます。
文字に関するデータ型(char, String)
文字を入れる際は、以下の2ついずれかの型を使用します。
- char型
- 1文字だけ代入可能
- String型
- 文字列(文字の集まり)を代入可能
char gender; gender = '男';
String name; name = "サバ缶";
注意すべき点は「’」と「”」の使い分けです。
「’」は「シングルクォーテーション」と呼ばれ、char型に使用します。
「”」は「ダブルクォーテーション」と呼び、String型に使用します。
// とても細かいところですが、よく確認しましょう!
char gender; gender = "男"; // コンパイルエラー!
String name; name = 'サバ缶'; // コンパイルエラー!
char型に入れる値を「”」で囲うと、文字列(String型)として扱われます。
すると「データ型が合わないよ!」とエラーが返ってくるので注意しましょう。
まとめ
長文、お疲れ様でした。
「たくさんあって覚えられないよ!」という方でも大丈夫です。
最初から全て完璧覚えられる人なんていません。
私なんか変数に1年以上つまづいていました(笑)
そういうのは独学の辛いところです。
私のTwitterでもご相談を受け付けているので、お気軽にご連絡ください🙌
次は、定数について学んでいきます。