📝

ITスクールの授業2日目のまとめ:変数とデータ刑のまとめ

2023/07/17に公開

前書き

今回は、入出力の一番基礎になる変数とデータ刑についてまとめてみる。
変数を学ぼうとするとデータ刑を、データ刑を学ぼうとするとメモリーの仕組みを学ばないといけないが、とりあえずメモリーの方は簡単にbyte数値だけを扱っていこうと思う。

変数

変数とは、ユーザー(プログラマー)がコンピューターのメモリーに、指定したデータ型[1]のデータを入力して、そのメモリーに名前をつけたものである。

変数を使うためには、まず使用する変数のデータ型と名前を決める「宣言」が必修である。

変数を宣言する規則はかこのようである。データ型と名前の間にスペースキーを1回押す。

データ型 名前
int age;
String name;
char grade;
float height;

宣言が終わったら、変数の名前を通じてそのメモリーにアクセスし、データ型に合う値ー(value)を代入することができる。変数に値(value)を代入するには、「=」を使う[2]。変数と値を書いたら、行の最後に「;」をつける。これはコンピューターに渡す命令を区分する記号である。

上の規則によって、変数を宣言して、その後値を代入すると下記のようになる[3][4]


//変数の宣言
int age;
String name;
char grade;
float height;

//宣言した変数に値を代入
age = 20;
name = "田中"; // String型は値を「"」で挟む。
grade = 'A';   // 文字型は値を「'」で挟む。
height = 127.5f; // float型は値の後に「fやF」を書く。

このように宣言と代入まで終えた変数には3つの要素が確認できる。

  1. データ型:変数にどんな種類の値(整数?実数?文字?文字列?参照型?)が入れるのかを明示する。

  2. 変数名:ユーザがパソコンに要請して入力したデータにアクセスできるように、データが入っているメモリー空間に付けられた名前になる。

  3. 値(value):変数名が指すメモリー空間に、実際入っている値を明示する[5]


データ型

上記した通り、データ型とは変数やある値がどんな種類のデータ(整数 / 実数 / 文字 / 文字列 / 参照型)であるかを明示するものである。

なぜそれを明示する必要があるのかというと、「データの目的や使用する場合によって、そのデータを割り当てる[6]ためにどれぐらいメモリーの空間を与えるから」と、「同じ容量のデータだとしても内部的にデータの仕組みが違うから」と言える。

データ型によってメモリー上で与える空間の大きさが異なる。データ型の容量の単位は「バイト(byte)」というもので、1byteは0や1が表示できる「ビット(bit)」が8つ揃っている。つまり、1byteは0や1を8つ並んだ、2の8乗個(256個)の数を表示できる。(000000000~11111111)

変数は自分に与えられたメモリーに入っている値(value)の種類によって2つに分けられる。

  1. 基本データ型:変数が指すメモリーに、本当の値(value)が入っている。メモリーも変数が指す空間だけで、変数名を入れて出力をすると、ユーザーが入力した値がそのまま出力される。

基本データは容量によって、入られるデータの種類によって分けられる。容量の単位は上記したバイトである。データの種類と容量によって分類すると下記のようになる。

参考:データ型ごとごとの最大値と最小値の範囲が書かれてあるURL:https://yusuke.blog/2008/10/06/1022

1-1. 整数:少数でない正数と0、負数が入れるデータ型である。容量による順番は下記を参考。

byte(1) -> short(2) -> int(4):基本データ型 -> long(8)

基本データ型というのは、違う整数のデータ型間の演算をすると、基本的に決まってあるデータ型に自動に変換されて演算をすることである。

上記の整数データ型の中で、「long」型は値の最後に「l」や「L」を付けることが規則になる。

1-2. 実数:少数を含んだ数が入られるデータ型である。データが「浮動小数点」という表記方をしてあって、的確な少数の表記が不可能である特徴がある。

float(4) -> double(8byte):基本データ型

上記の実数型の中で、「float」型は値の最後に「f」や「F」を付けることが規則になる。

1-3. 文字:1字のデータが入られるデータ型である。文字型は内部では整数で扱われていて、2byteの正数を各数に対応する文字に変換して表示する。その変換式にはアスキーコード(ASCII CODE)とユニコード(UNICODE)がある。

char(2)

1-4. 論理:真(true - 1)と偽(false - 1)のどっちかを表すデータ型である。コードの状態を制御する時によく使われる。

boolean(1)
  1. 参照データ型:変数が指すメモリーに、本当の値が入っているメモリーのアドレス(address)が入っている。変数に与えられたメモリー以外にも、本当の値が入っている別のメモリーがもう1つあって、変数は自分が持っている本物のメモリーのアドレスを通じて本当の値にアクセスできる。

参照型データは決まってあるものでなく、ユーザーが自由に作ったり、内容を変えたりすることができる。そのため、メモリーの容量も決まってない。

参照型のデータは下記の種類があるが、詳しい説明はまたする予定である。

1-1. クラス(class)
1-2. インターフェース(Interface)
1-3. 配列(array)
1-4. 列挙(enum)


以上で、変数は何であるか、宣言と値の代入、データ型の種類と簡単な特徴について調べてみた。
次は、コンピューターが数字をどう扱うかを二陣数(Binary)という方式と一緒に調べる。また、アスキーコード(ASCII CODE)とユニコードを通じてchar型を扱う方法について調べる。

脚注
  1. 基本データ:整数や実数、文字や文字列、論理ーtrue/false
    参照型:クラス(class)、インターフェース(interface)、配列(array)、列挙(enum) ↩︎

  2. プログラミングでない場合、「=」は「両方の値が同じであること」を表しますが、プログラミングでは、右の値を左の変数に入れるという意味になります。もともとの意味(両方の値が同じ)を表すためには、「==」を使います。 ↩︎

  3. データ型によって、値を入れる時に決まってある記号を入れる必要があるが、これはデータ型についてまとめる時に詳しく書いてみる。 ↩︎

  4. 下のコードの中で、「//」と書いてある後の内容は、注釈になってプログラムのコードに反映されない。 ↩︎

  5. 基本データと参照によって、値そのもの(value)が入っているか値が入っているメモリーのアドレス(address)が入っているかの違いがあるが、これは後でまたまとめることにする ↩︎

  6. 載せる?「メモリーにロードする」という意味で書いたが、どっちを主に使うか調べたけど分からなかった、、 ↩︎

Discussion