こんにちは。「Javaを復習する初心者」です。
EclipseでJava入門の第6回目です。今回はif文の解説をしようと思います。
パッケージlesson6を作ってその中にMain.javaを作ってください。public static void main(String[] args)メソッドが必要なので、作成するようにしてください。操作の詳細は以下の手順になります。
- パッケージ・エクスプローラーの「src」フォルダを右クリックします。表示されるメニューの上の方にある「新規」にマウスカーソルを合わせます。更にメニューが展開され、その中に「パッケージ」という項目があります。これをクリックします。「新規Javaパッケージ」というダイアログが表示されます。名前入力欄に「lesson6」と入力します。入力したら、「完了」ボタンをクリックします。
- 「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文」というのがあります。その解説は別の機会にします。