イントロダクション
前回やったif文と同じように条件分岐を行う構文です。
ifでやるより、switchの方が「変数の値がXXXの時」ということがわかりやすいです。
最終的には、コードを書く人の好みになってしまいますが。。。
Switch文
今回は、switch文の書き方、使い方(サンプルコード)をやります。switch文はif文と同様に、文字列と数値で判定できます。
※JDK1.8では文字列が使用可能、しかし古いJDKでは使えないかも?
ちなみに前回の記事はこちらです。前回の内容を踏まえて記載しています。
switch文の書き方
switch(判定する値) {
case 値がXXXの時のケース :
// 処理1
case 同上:
// 処理2
default:
// 上記以外のケース
}
こんな感じです。if文と何が違うのか?見た目が違いますね。。。なので、前回作成したプログラムはif文で作成しましたが、switch文で書き直すことができます。
<前回のコード>
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
if ("aaa".equals(str)) {
System.out.println("aaaが入力されました。");
} else {
System.out.println("そのほかの値が入力されました。");
}
<処理内容>
- 標準入力クラスを生成(java.util.Scanner)
- 入力1行分(入力後にエンターキーを押下したときの全部)を取得(変数strにセット)
- strの値が「aaa」と等しいとき「aaaが入力されました。」を表示
- strの値が「aaa」と等しくないとき「そのほかの値が入力されました。」を表示
※「"aaa".equals(str)」はstrの値が「aaa」の時にtrueを返します。
コードを書き直す前に、一回動かしてみましょう。
全体のコードは下のようになります。
import java.util.Scanner;
public class MainMethodTest {
public static void main(String[] args) {
System.out.println("Hello World");
MainMethodTest main = new MainMethodTest();
// 標準入力を受ける
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
if ("aaa".equals(str)) {
Systme.out.println("aaaが入力されました。");
} else {
System.out.println("その他の値が入力されました。");
}
}
}
これは、単純にif文で書いた時のもの。。。これを書き換えてswitch文に変更します。
public static void main(String[] args) {
System.out.println("Hello World");
MainMethodTest main = new MainMethodTest();
// 標準入力を受ける
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
switch (str) {
case "aaa":
System.out.println("aaaが入力されました。");
default:
System.out.println("その他の値が入力されました。");
}
}
これで動かしてみます。
ん?何か余計なものが出力されています。「その他の〜」
は表示されちゃいけないはず。。。
そうなんです。「break」がないので処理がdefaultの部分も通ってしまうのです。
この「break」はループしている時にも使えるコードで、「処理を抜ける」という意味があります。ちょっと上のコードに「break」を加えて実行してみます。
public static void main(String[] args) {
System.out.println("Hello World");
MainMethodTest main = new MainMethodTest();
// 標準入力を受ける
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
switch (str) {
case "aaa":
System.out.println("aaaが入力されました。");
<b>break;</b>
default:
System.out.println("その他の値が入力されました。");
}
}
こんな感じで実装します。〜文は基本ですが、実際にアプリケーション(ゲームも含む)を作成しようとした時の土台になります。ここら辺を理解して、オブジェクトの組み合わせ方を理解してやれば、想い通りのアプリケーションができるかも?
※何かをやろうとした時に「イレギュラー」はつきものです。やはり「根性」で突破するしかないような気がします(笑)
そんなわけで、今回のswitch文はここまでにしようと思います。
でわでわ。。。