第六章 
 〜基本編〜
 条件判断後編
 複数の条件判断をする
   条件判断のやり方をやっているので、これも覚えていたほうが
  いいと思うのでやっておきたいなと思うです。
  それが複数の条件を判断することです。複数というのは、
  もしマンガの冊数が80冊以上だったら、かなりのマニアですね!と表示
  そうではなくて、マンガの冊数が60冊以上だったら、まあまあマニアですね!と表示
  そうでもなくて、マンガの冊数が40冊以上だったら、普通より多いかな?と表示
  上の条件には当てはまらなく、それ以外だったら、たぶん普通かな?と表示
  のような例が複数の条件判断です〜
  ちなみにテラオメは今現在、マンガをあまりもってません・・・(関係ありませんね
  Javaの本が多いです〜(これも関係ありませんね・・・
  では、サンプルを見ていくです〜
サンプルプログラム6_3
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9:
   10:
   11:
   12:
   13:
   14:
   15:
   16:
   17:
   18:
   19:
   20:
   21:
   22:
   23:
   24:
   25:
   26:
import java.io.*;

class Rei6_3{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new
            BufferedReader(new InputStreamReader(System.in));

        System.out.print("マンガ何冊もってる?");
        String s = br.readLine();
        
        int satu = Integer.parseInt(s);

        if(satu >= 80){
            System.out.println("かなりのマニアですね!");
        }
        else if(satu >= 60){
            System.out.println("まあまあマニアですね!");
        }
        else if(satu >= 40){
            System.out.println("普通より多いかな?");
        }
        else{
            System.out.println("たぶん普通かな?");
        }
    }
}


   見てもらうと分かるんですが、else ifというのが書かれてるですね!
  考え方は、ifのときと同じで、ifの条件以外にも条件があるときに使うです〜
  だから、それいがいでもし、のような感じでプログラムがなってるです〜
  if〜elseが分かってくれれば、else ifも分かってくれると思うです。


   実は、複数の条件判断をするやり方にはもう1つあるんですよ〜
  それはswitch文です〜
  switch文というのは、if〜else if〜elseのときのような処理ができるです。
  しかし、if文とは違って条件式を書くことはできないです。
  (前回やった関係演算子を使った式)
  一言で言えば、変数aが1のとき○○をする。変数aが2のとき××をする。
  変数aが3のとき△△をする。どれにもあてはまらなかったら□□をする
  といったような感じのことができるです。
  では実際にサンプルを見てほしいです。
サンプルプログラム6_4
   1:
   2:
   3:
   4:
   5:
   6:
   7:
   8:
   9:
   10:
   11:
   12:
   13:
   14:
   15:
   16:
   17:
   18:
   19:
   20:
   21:
   22:
   23:
   24:
   25:
   26:
   27:
   28:
   29:
   30:
   31:
   32:
   33:
   34:
import java.io.*;

class Rei6_4{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new 
            BufferedReader(new InputStreamReader(System.in));

        System.out.print("成績を1〜5で入れてほしいです:");
        
        String str = br.readLine();
        int a = Integer.parseInt(str);
        
        switch(a){
            case 1:
                System.out.println("かなりまずいかもしれないです");
                break;
            case 2:
                System.out.println("微妙にまずいです");
                break;
            case 3:
                System.out.println("普通です");
                break;
            case 4:
                System.out.println("まあまあ良いです");
                break;
            case 5:
                System.out.println("バリバリOKです〜");
                break;
            default:
                System.out.println("正しい値が入力されてないです");
                break;
        }
    }
}


   これは、実行すると、それぞれにあった答えがでてくると思うです〜
  そして、1〜5以外の値を入れると正しい値が入力されてないですと表示するです。
  なぜそうなるかと言うですと・・・
   まずswitch(a)というのから説明していくです。
  これは、これからswitchの ( と ) の間にある値について判断していくですよ〜
  のような感じの処理です。
  switch文は、{}で囲むのがルールなので囲むです。
   その中には、たくさんのcaseがあるですね!
  これがelse ifのような役割を果たしているです〜
  caseの1つ空白をあけたところに、それぞれの判断していきたい値を入れていくです。
  ここでは、順に1〜5が入ってるですね!
  そして、switch文は、{}で囲んだ中にdefault:というのがあるですね!
  これは、elseと同じだと思ってほしいです。
  どれにもあてはまらなかったらって意味です。
   そしてbreak;というのも気になるですね!
  これは、消してみると分かるです。
  こいつをつけてあげないと・・・breakを見つけるまで
  どんどん下へと処理をしていくです。
  言うよりも実際にやってみるとわかるです。
   なぜそのようなことが起こるかと言うですと、それは
  breakというのが、{ と }の中から外に出る(ブロックから抜ける)
  という機能をもってるからです。
  ブロックというのは { と }の中に書かれている処理です。(まとまりですね!)
  breakというのは、次回やるループ処理と
  if文などを組み合わせてループからぬける処理を書くとき
  などにも使える便利な命令です〜。
   補足ですが、caseで判断するときに変数は使えないです。
  case bのようなことはできないです(bは変数)
  =と==を間違えるのと同じぐらい注意をしてほしいです〜


  今回のポイント
  @ 複数の条件を判断するときはelse ifを使う
  A switch文とcase、break、defaultはペアで覚える
    機能的には、else ifと似ている(else ifの条件式をa == 値 にしたときと同じ)
  B breakを書かないとどんどん次のcaseの処理を行ってしまう・・・

  TOPに戻る     Java講座に戻る