こんにちは。「Javaを復習する初心者」です。
EclipseでJava入門の第7回目です。今回はelse文とif else文の解説をしようと思います。
パッケージlesson7を作ってその中にMain.javaを作ってください。public static void main(String[] args)メソッドが必要なので、作成するようにしてください。「新規Javaクラス」ダイアログで「どのメソッド・スタブを作成しますか?」という項目で「public static void main(String[] args)」にチェックをいれると以下のようにクラスが作られます。チェックを忘れた場合はコピーアンドペーストしても大丈夫です。
ソース
package lesson7;
public class Main {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
}
}
else文
Eclipseの補完機能を使って、else文を入力しましょう。7行目に「if」と入力し、ctrlキーを押しながらスペースキーを押下します。
今回は「ifelse」という項目を選択します。ダブルクリックするか、十字キーで選択してEnterキーを押してください。次のようにソースが補完されます。
ソース
package lesson7;
public class Main {
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
if (condition) {
} else {
}
}
}
「if { }」の後に「else { }」文が続いています。「else」という文字の次の「{」と「}」で囲まれた部分を便宜上、「else文のブロック」と呼ぶことにします。前回はif文のブロックだけでしたが今回はそれに続いてelse文のブロックが続いています。
if文に入力されている「condition」は条件を式を書きます。これは前回解説しました。条件式が真の場合に、if文のブロックが実行されます。
else文のブロックは条件式が偽の場合に実行されます。「条件式が偽」とは「条件式が成り立たない」という事です。
例えば、以下が具体例です。
ソース
package lesson7;
public class Main {
public static void main(String[] args) {
int a = 3;
if (a == 2) {
System.out.println("Yes.");
} else {
System.out.println("No.");
}
}
}
上記プログラムを実行するとコンソールに「No.」と出力されます。条件式「a == 2」は「a」に「3」が格納されているので、条件式は偽です。そのため、if文のブロックは実行されず、else文のブロックが実行されます。
上記プログラムを日本語で記述すると以下のような文章になります。
- 変数aに3を格納する
-
- aが2の場合、「Yes.」を出力する。
- それ以外の場合、「No.」を出力する。
else if文
上記if文では条件文の真偽を判定し、真ならif文のブロック、偽ならelse文のブロックを実行します。では、他の条件も使いたいという場合はどのようにすれば良いかというと、「else if文」を使います。
以下は途中まで記述したソースです。
ソース
package lesson7;
public class Main {
public static void main(String[] args) {
int a = 4;
if (a == 2) {
System.out.println("a = 2.");
} else
}
}
if文を記述して、「else」と入力した状態です。「else」のすぐ右にカーソルを合わせ、ctrlキーを押しながらスペースキーを押してください。「elseif文」という項目があるので選択して下さい。
以下のようにソースが補完されます。
ソース
package lesson7;
public class Main {
public static void main(String[] args) {
int a = 4;
if (a == 2) {
System.out.println("a = 2.");
} else if (condition) {
}
}
}
例えば、次のような使い方をします。
ソース
package lesson7;
public class Main {
public static void main(String[] args) {
int a = 4;
if (a == 2) {
System.out.println("a = 2.");
} else if (a == 3){
System.out.println("a = 3");
}
}
}
上記の場合、次のように動作します。
- 変数aに4を格納する
-
- aが2の場合、「a = 2.」を出力する。
- aが3の場合、「a = 3.」を出力する。
最初に条件式「a == 2」が判定され、偽の場合は、次の条件式「a == 3」が判定されるという動作をします。aに4を格納しているため、if文のブロックもif else文のブロックも実行されません。「a = 4」の箇所を「a = 3」に書き換えると「a = 3.」が出力されます。
「else if文」はいくつも繋げて記述することができます。
ソース
if ([条件1]) {
[条件1]が真の場合の処理
} else if ([条件2]){
[条件2]が真の場合の処理
} else if ([条件3]){
[条件3]が真の場合の処理
} ...
上記のように「else if文」を続けて書いていくことができます。
組み合わせる
「else if文」を記述した後、最後に「else文」を追加することもできます。
ソース
if ([条件1]) {
[条件1]が真の場合の処理
} else if ([条件2]){
[条件2]が真の場合の処理
} else if ([条件3]){
[条件3]が真の場合の処理
} else {
上記以外の場合の処理
}
どの条件も成り立たない場合の処理が最後のelse文ということです。
例えば、次のような使い方です。
ソース
package lesson7;
public class Main {
public static void main(String[] args) {
int a = 4;
if (a == 2) {
System.out.println("a = 2.");
} else if (a == 3) {
System.out.println("a = 3.");
} else {
System.out.println("2でも3でもありません.");
}
}
}
上記プログラムを実行すると、「2でも3でもありません.」が出力されます。