システム開発の現場で使用するプログラミング言語は多岐にわたり、多くのプログラマーは複数の言語を扱うする必要がありますが、常にすべての言語の構文を隅々まで記憶することは難しでしょう。
また、プログラミング言語は、構文こそ違えど、根幹的な部分は似ているため、少し離れて忘れてしたとしても、必要な時に調べて思い出していくスタイルでも問題ないという考え方でも基本的には問題ないでしょう。
この記事では、前回に引き続き、Java からしばらく離れてしまった人や、入門者向けに、Java 基本的な構文がすぐに思い出せるような内容を紹介します。
条件分岐
条件分岐は、与えられた条件に一致した時に、条件内のブロックを実行する構文です。Java には、条件分岐を行う構文として if と switch が用意されています。
if 文
if (条件式) は、条件式が一致した時だけ、中に記述された処理が実行されます。
次の例は、変数 i が偶数の時だけ、if 内のブロックを実行します。
if (i % 2 == 0) {
System.out.println("変数「i」は偶数です。");
}
条件式に一致しかった時の処理を記述する場合は、if 〜 else 構文を使用します。
if (i % 2 == 0) {
System.out.println("変数「i」は偶数です。");
} else {
System.out.println("変数「i」は奇数です。");
}
複数の条件を指定する場合は、if 〜 else if 構文を使用します。
if (i <= 10) {
System.out.println("変数「i」は10以下です");
} else if (i <= 20) {
System.out.println("変数「i」は20以下です");
} else {
System.out.println("変数「i」は20以上です");
}
ちなみに、ブロックの中で実行される命令が1つだけであれば、中括弧の記述は省略できます。
if (i % 2 == 0)
System.out.println("変数「i」は偶数です。");
else
System.out.println("変数「i」は奇数です。");
三項演算子
三項演算子とは、if 文を省略した条件分岐によって値を返す構文です。条件によって使用する値や変数を切り替えたいときにシンプルに条件を記述できます。
三項演算子の構文は次のとおり。
条件式 ? 式1 : 式2
switch文
switch は、変数または式の値と一致する case 式の処理を実行する構文です。
if のように複雑な条件式によって、処理を分岐させることはできませんが、変数などの値によって処理が何パターンにも分岐する場合、if 文で分岐するとコードが読みにくくなるため、そのような時に switch を使用するとスッキリとしたコードが記述できます。
以下は、変数 a の値によって、処理を分岐させるサンプルソースです。
int a = 1;
switch (a) {
case 1:
System.out.println("変数aは1です");
break;
case 2:
System.out.println("変数aは2です");
break;
case 3:
System.out.println("変数aは3です");
}
いずれの case 式に当てはまらなかった時に処理を行う場合は、default: を使用します。
int a = 1;
switch (a) {
case 1:
System.out.println("変数aは1です");
break;
case 2:
System.out.println("変数aは2です");
break;
default:
System.out.println("変数aは1,2以外です");
}
【関連記事】
▶【まとめ】Javaのswitch-case文の使い方をサンプル付きで解説!
配列
ほとんどのプログラミングに存在する配列は、同じデータ型の値を、ひとまとめに扱うことができるデータ型です。配列は要素の数を決めて初期化を行い、一度決めたの配列の要素数は後から変更できません。
配列の生成と要素へのアクセス
5つの要素を持つ int型の配列を Java で作る場合は、次のように書きます。
int num = new int[5]
配列の各要素へアクセスする場合は、括弧内に要素の添字を指定します。添字は、たの多くのプログミング言語と同様、0からのインデックスで指定します。
num[0] = 1; //1番目の要素へ値を設定
num[4] = 3; //5番目の要素へ値を設定
int a = num[0]; //1番目の要素の値を取得
配列の値を指定して初期化
任意の値を指定して配列を初期化することもできます。中括弧内に任意の値をカンマ区切りで指定して配列を初期化します。
次のサンプルソースでは、int型の配列に「1」「5」「10」の3つの値(要素)を指定して配列を初期化しています。
int[] num = {1, 5, 10};
System.out.println(num[0]); // 1
System.out.println(num[1]); // 5
System.out.println(num[2]); // 10
配列に任意の値を一括代入
配列のすべての要素に同じ値を代入したい場合、for などを使って、ループしながらすべての要素に値を代入する方法もありますが、Arrays クラスの fill メソッドを使用することで、たった1行で配列のすべての要素へ同じ値を一括で代入できます。
import java.util.Arrays;
int[] num = new int[3]; //3つの要素を持つ配列を作成
Arrays.fill(num, 10); //すべての要素に10を一括代入
クラス
オブジェクト指向言語である Java において、クラスは重要な概念の1つです。クラスは、ある特定のオブジェクトに対する操作や状態の管理を、ひとまとめにした定義です。
Java を初めとするオブジェクト指向言語では、基本的には役割ごとのクラスを設定・実装し、それらのクラスをつなぎ合わせていくことで、1つのアプリケーションを完成させます。
[アクセス修飾子] class クラス名 {
//変数やメソッドの定義
}
また、クラスの継承を行う場合は extends キーワードを用いて、継承元のスーパークラスを指定します。
[アクセス修飾子] class クラス名 extends スーパークラス名 {
//変数やメソッドの定義
}
メソッド
メソッドは、ある特定の処理の関する処理をまとめた定義です。メソッドを定義し、必要なタイミングで呼び出すことで、呼び出し元は中の細かい処理を意識することなく、目的の処理を実行することができます。
メソッドの詳しい内容は、次の記事をご覧ください。
【関連記事】
▶【Java】クラス?メソッド?クラスメソッドって何?
まとめ
前回に引き続き、Java の基本について解説してきました。この記事を読んで長く Java を使っていないと忘れてしまいがちな基本構文をサクッと思い出していきましょう。
switch の式で指定できる値は、char/byte/short/int/String/enum型 のいずれかのみで、参照型のオブジェクト等では使用できません。