プログラミング学習において、最初に理解しなければならない基本的な概念の一つが「変数」と「データ型」です。
この記事では、プログラミング初心者に向けて変数とデータ型について説明します。
変数とは何か?
変数とは、プログラムで使うデータを格納する箱のようなものです。
プログラム内で情報を保存し、操作するために変数は不可欠です。
Javaでは変数を宣言するときに、その変数がどのような種類のデータを格納するか(データ型)を指定します。
例えば、整数値を格納するための変数,文字列を格納するための変数というように変数によって格納できるデータ型は変数の宣言と同時に決定されます。
以下は、整数を格納する変数の宣言例です。
int age;
この例では、「age」という名前の整数型の変数を宣言しています。
この変数には整数値が格納できますが、文字列などは格納できません。
データ型の種類
Javaのデータ型には、基本型と参照型があります。
基本型と参照型とは?
基本型(プリミティブ型)の変数には、値が直接入っています。
一方、参照型(リファレンス型)の変数には、値ではなく値の場所(参照先のアドレス)が入っています。
とはいってもイメージがしにくいと思います。
一応、基本型と参照型で分けて紹介はしますが、最初はそれほど違いを意識しなくても問題はありません。
では、具体的なデータ型を見てみましょう!
基本型の一覧
Javaの基本型は、次の8種類です。
- 整数型
- byte
- short
- int
- long
整数型は全部で4種類。それぞれ値の長さが異なります。
一番よく使うのが、「int」です。なので、とりあえず「整数型 = int」にしておいてもあまり問題はないでしょう。
- 浮動小数点型
- float
- double
浮動小数点型は2種類あります。この二つの違いもデータの長さです。
小数点を含む数値を使うときには、「double」を使っておけばOKです。
- 文字型
- char
文字型は「char」だけです。「char」には、シングルクォーテーションで囲った1文字を格納します。
後述の文字列型とは異なります。
- 真偽値型
- boolean
真偽値型も「boolean」だけです。また、booleanは「真(true)」または「偽(false)」のどちらかを格納します。条件分岐などによく使われます。
参照型の例
基本型は8種類すべてを紹介しましたが、参照型では頻度の高いものに絞って紹介します。
- 文字列型(String): 文字列を格納するために使用されます。
テキストデータの取り扱いに非常に便利で、文字列を結合したり、検索したり、変更したりすることができます。
前述の文字型(char)と似ていますが、charは1文字を格納していたのに対しStringは2文字以上でも格納ができます。そのため、charよりもStringの方が使用頻度は高いです。
- 配列(Array): 複数の要素を一つの変数に格納するために使用されます。
同じデータ型の要素を連続的に並べることができます。
int[] numbers = {1, 2, 3, 4, 5}; // 整数型の配列
String[] fruits = {"Apple", "Banana", "Orange"}; // 文字列型の配列
このように配列ごとに各要素のデータ型が決まっています。
- リスト(List): 可変長のデータセットを格納するために使用されます。
Javaでは一般的に使用されるArrayListやLinkedListなどがあります。
その中でも一番よく使うのが、「ArrayList」です。「LinkedList」は順序の変更が頻繁に行われる時などに使用されることが多いです。
- マップ(Map): キーと値のペアを格納するために使用されます。
Mapには、HashMapやLinkedHashMapがあります。
「HashMap」を使うのが一般的ですが、HashMapは順序を保持しないんです。
そのため、順序を保持させる必要があるときには「LinkedHashMap」を使います。
- クラス(Class): オブジェクト指向プログラミングで、独自のデータ型を定義するために使用されます。クラスは属性とメソッドを持ち、新しいオブジェクトを生成するための設計図です。
開発において、必ずと言っても過言ではないほどよく使います。しかし、ほかのデータ型の使い方に慣れておけばそれほど難しくはないですよ。
よく使われるデータ型と例
- 整数型(int):整数を格納するための基本型のデータ型です。
int age = 25; // 年齢(age)
int count = 1; // カウント・統計
- 文字列型(String):文字列を格納するための参照型のデータ型です。
String greeting = "Hello, World!"; // 挨拶(greeting)
String name = "Yuuri"; // 名前(name)
- 真偽値型(boolean):真偽値を表現するための基本型のデータ型です。
boolean isRaining = true; // 雨が降っている:true, 降っていない:false
boolean isValid = false; // 有効:true, 有効でない:false
これらは、非常によく使われるデータ型です。まずはこの3つのデータ型から慣れていきましょう。
変数の初期化
変数を宣言しただけでは、その変数には値が格納されていません。変数に初期値を与えることを「変数の初期化」と呼びます。
変数を初期化することは、プログラムの動作に重要な影響を与えることがあります。
例えば、ここまでに紹介した下の2つのコードがあります。
int age;
int age = 25;
この2つはどちらも年齢(age)を表す整数型の変数です。
上の方は変数の初期化がされていませんが、下の方では初期値として25が代入されています。
変数の初期化をしていないとその変数を使うときにエラーが発生してしまうことがあります。
不測のエラーや予測できない結果を避けるためにも変数の宣言と同時に初期化をしておきましょう。
初期値の値が決めかねることもあると思います。
そんなとき、私は下記で変数を初期化しておいて初期値が決まったら書き換えています。
- 文字列型(String)の場合 ”” (空文字)
- 整数型(int)の場合 0
- 真偽値型(boolean) の場合 false
変数の命名規則
変数名は、無意味な文字の羅列でもプログラムは動きます。
でも変数名を適当につけてしまうと、あとでソースを読み返したり自分以外の人が読んだときにわかりにくくなってしまいます。
コードの可読性と保守性を高めるために変数名を適切につけましょう。
Javaでは変数名を命名する際にいくつかのルールが存在します。
- 変数名は英字で始まり、英数字またはアンダースコア(_)で構成されます。
- 変数名は意味を持つ名前にすることが推奨されます。例えば、年齢を表す変数名に「age」、名前を表す変数名に「name」と付けるなどです。
- 変数名は大文字と小文字を区別します。つまり、userNameと username は異なる変数です。
- Javaの予約語(キーワード)は変数名として使用できません。予約語はプログラミング言語の構文や機能を定義するために予約されています。
下記は、Javaの予約語の一部です。- private, public, protected のようなアクセス修飾子
- String, int のようなデータ型
例えば、次の変数宣言は命名規則に従っています。
int studentAge; // 学生の年齢
これに対して、次の宣言は無効です。
int 123abc; // 数字で始まっているため無効
基本的な変数操作
変数を宣言し、初期化し、命名規則に従って名前を付ける方法を学びました。
次に、変数の操作方法について考えてみましょう。
変数の操作として代表的な、代入と出力を紹介します。
値の代入
変数を操作する方法の一つは、値を代入することです。
代入は変数に新しい値を格納するための手段です。
例えば、次のコードは変数 myNumberに値 42を代入しています。
myNumber = 42;
この操作により、myNumberの値は42になります。
プログラミングでは「=」は代入を表します。数学で使う「等しい」という意味ではありません!
また、変数に格納された値を計算し、その結果を代入することもできます。
次のコードは変数 xと yの値を足して、結果を変数 sum に格納しています。
int x = 5;
int y = 7;
int sum = x + y;
このコードでは、sumの値は 12 になります。
値の出力
変数の値を出力することもよく行われます。
変数の値を画面(コンソール上)に表示するためには、出力メソッドを使用します。
Javaでは主に System.out.println()
、System.out.print()
が使用されます。
System.out.println():()かっこの中身を出力後、改行する
System.out.print():()かっこの中身を出力。改行はしない
例えば、次のコードは変数 message
の値を画面(コンソール上)に表示します。
String message = "Hello, world!";
System.out.println(message);
このコードを実行すると、「Hello, world!」が画面に表示されます。
まとめ
この記事では、コーディングの基本である変数とデータ型について詳細に説明しました。
変数は情報を格納し、操作するために重要です。また、データ型は変数の持つデータの種類を指定します。
正しいデータ型の選択と適切な変数の操作は、プログラムの正確性と効率性に大きな影響を与えます。
変数とデータ型は、プログラミングの基盤を築く重要な要素であり、これらの概念を理解することはプログラミングのスキルを向上させる第一歩です。基本から始め、より複雑なプログラミングに進むための基盤を築いていきましょう。
コメント