java-beginner.com ブログ

プログラミングを学習するブログ(Javaをメインに)

EclipseでJava入門6 | if文と条件式

投稿日:

最終更新日:2017年01月15日

アイキャッチ

こんにちは。「Javaを復習する初心者」です。

EclipseでJava入門の第6回目です。今回はif文の解説をしようと思います。

パッケージlesson6を作ってその中にMain.javaを作ってください。public static void main(String[] args)メソッドが必要なので、作成するようにしてください。操作の詳細は以下の手順になります。

  1. パッケージ・エクスプローラーの「src」フォルダを右クリックします。表示されるメニューの上の方にある「新規」にマウスカーソルを合わせます。更にメニューが展開され、その中に「パッケージ」という項目があります。これをクリックします。「新規Javaパッケージ」というダイアログが表示されます。名前入力欄に「lesson6」と入力します。入力したら、「完了」ボタンをクリックします。
  2. 「lesson6」フォルダを右クリックし、「新規」にマウスカーソルを合わせます。展開されたメニューの中に「クラス」という項目があります。これをクリックします。「新規Javaクラス」というダイアログが表示されます。名前入力欄に「Main」と入力します。下の方に「public static void main(String[] args)」というチェック項目があるので、チェックをいれます。その後、「完了」ボタンをクリックします。

if文

全体像

7行目でTabキーを押し、「if」と入力しましょう。次のような状態です。

ソース

package lesson6;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		if
	}

}

この状態ではエラーの赤線が「if」の箇所に表示されます。ifの後ろにカーソルを合わせ、ctrlキーを押しながらスペースキーを押します。入力補完機能が作動し、入力候補の選択メニューが表示されます。

一番上の「if – if文」が灰色背景色で選択されているので、エンターキーを押します。次のようにif文という構文が自動で入力されます。

ソース

package lesson6;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		if (condition) {

		}
	}

}

上記の時点では「if」という文字の右側のカッコ内の「condition」という文字に赤線が引かれます。このままではエラーで実行できません。この赤線の箇所は基本的に条件を記述します。この部分に記述する内容は後で説明することにして、最初に全体像を説明します。

全体的な説明として、if文は次のような構文です。

ソース

if ([条件式]) {
	[条件式が真のときに実行されるブロック]
}

便宜上、上記で「{」と「}」で囲まれた部分を「if文のブロック」と呼ぶことにします。このブロックには一連の処理を記述できますが、十石されるかどうかは「条件」によって変わります。

条件式

if文を使うためには条件式を理解しておく必要があります。条件式では例えば、「変数nの値が1」という条件を表すことができます。この条件式は「n == 1」と記述します。ここで中央に使う記号を知っておく必要があります。中央の部分には比較演算子と呼ばれるものを記述します。

まず、「等しい」、「等しくない」を表す比較演算子があります。以下、v1とv2はint型変数とします。

内容
v1 == v2

v1とv2は等しい

v1 != v2

v1とv2は等しくない

つぎに、「以上」、「未満」を表す比較演算子があります。

内容
v1 <= v2 v1はv2以下

v1 < v2 v1とv2より小さい

v1 >= v2

v1はv2以上

v1 > v2

v1とv2より大きい

一番基本的な使い方はv1を変数、v2を具体的な数値にして使う方法です。

if文の簡単な例

以下は簡単なif文の例です。int型変数nを1で初期化して、nが2より小さい場合、「Hello.」を出力する例です。

ソース

package lesson6;

public class Main {

	public static void main(String[] args) {
		int n = 1;
		if (n < 2) {
			System.out.println("Hello.");
		}
	}

}

条件式「n < 2」は正しいのでif文のブロックが実行されます。この場合、8行目が実行されます。 上記でnの初期値を2以上に設定した場合、条件式「n < 2」は正しくないため、if文のブロックは実行されません。そのため、何も出力されず、プログラムは終了になります。

trueとfalse

さて、条件式が正しいと表現しましたが、正確には条件式は2つの値trueとfalseのどちらかになります。このtrueとfalseはブール値リテラルと呼ばれるもので、この文字列がそのまま、意味を持っているというものです。例えば、「1 == 1」という条件式はtrueという値になります。これは次のプログラムを動かすと理解が深まると思います。

ソース

System.out.println(1 == 1);
System.out.println(1 == 2);

結果

true
false

出力される内容に注目してください。「1 == 1」、「1 == 2」のそれぞの結果がtrue、falseです。条件式全体がブール値になると考えると分かりやすいと思います。

if文は条件式がtrueのときに、if文のブロックが実行されるということです。条件式がfalseのときはif文のブロックは実行されません。

文字列比較

上記では数値の比較をしました。ある数値に等しい場合は「==」を使うのですが、文字列ではこのような使い方はしません。詳しい説明は省きますが、文字列が等しいことを比較するためには次のような記述をします。

ソース

String s = "Hello";
if (s.equals("Hello")) {
	System.out.println("Yes.");
}

Stringクラスは文字列を扱うクラスです。「equals」というメソッドが用意されていて、ある文字列と等しいか判定する場合、「変数.equals([文字列])」というような使い方をします。この式全体がtrue/falseの値になります。

今回はif文の解説でしたが、「else文」、「if else文」というのがあります。その解説は別の機会にします。