異世界現地人でもわかるJavaプログラミング#3(if~条件分岐~)

warning:本記事の内容の正確性は保証されておりません。 

 おはこんばんちは。
 それなりに計算はできたっぽいので、もうちょっと複雑なプログラミングの世界に突入してみようと思います。

 今回も
https://paiza.io/ja さんのお世話になります。
(コード作成を試してみる(無料)→(javaじゃなかったら)言語をJavaに切り替え)

今回も、

// Your code here!
と書かれているところを色々編集していきます。

今回は、条件文。ある条件で処理を分岐させるというやつ。
コンピュータが出来た時は、計算できる! それだけでスゲーってなってたんだと思いますが、普通に四則演算出来るだけでは、昨今の電子機器の中身を書く(プログラミングする)ことは出来ません。

 なので、色んな処理を書くことが必要になります。今回は条件によって、処理を分ける、「if」について、触りだけ。

if文

 その名の通り、(中学生でも知ってる英単語)、「もし」についてです。
「もし、○○ならば~」みたいなことをプログラムで実現するための人です。

 まずは、5か否かみたいな簡単な感じで考えてみましょうか。

       if(kazu == 5){
           System.out.println("5です!");    
       }else{
           System.out.println("5じゃないです!!");
       }

 はい、ifって書いたら、「()」を書いて、「()」の中に判定する条件を書きます。「()」の後には、その時にしたい処理を書きます。それは「{}」の中に入れときます。
 「else{ }」は、省略できるのですが、「if」じゃなかった時、というので処理を分けたい時には必要です。(英語で”さもなければ”みたいな意味ですね)

        if(kazu == 5){
           System.out.println("5です!");    
       }

 ↑でも動きます。「kazu」が5でないときには、何もしないという処理になります。

 ifの「( )」の中には色んな条件を書けるのですが、オーソドックスなのは、大小を比較する、「>(大なり、大小を比較する)」「>=(大なりイコール、以上ならば)」「<(小なり)」「<=(以下略)」とかになると思います。
 今回使った、「==」は、同じならばという時に使うやつです。異なるならば、にしたいなら、「!=」になります。

 また、ifの中には、複数の条件が書けます。式の判定の順序はややこしい&可読性のために、それぞれ「()」でくくる推奨。

       int kazu_1;
       int kazu_2;
       
       kazu_1 = 1;
       kazu_2 = 2;
       
       if( (kazu_1 == 1) && (kazu_2==2) ){
           System.out.println("kazu_1は1、kazu_2は2です");    
       }

  上のだと、kazu_1とkazu_2の値を両方調べてます。間に「&&」があるでしょう。
 「&&」は「かつ」というように訳されることが多いです。
 ifの()括弧の中を日本語的に言うと、「kazu_1が1で、かつ、kazu_2が2の時」と言った具合になります。どっちの条件も満たしてる時が「&&」のかつです。
 「もしくは」というのもあって、「||」と書けば、どっちかが満たされていれば条件を満たして実行されます。

       int kazu_1;
       int kazu_2;
       
       kazu_1 = 1;
       kazu_2 = 3;
       
       if( (kazu_1 == 1) || (kazu_2==2) ){
           System.out.println("kazu_1が1か、kazu_2が2です");    
       }

 これだと、kazu_1が1であること、もしくは、kazu_2が2であることがifの中の実行条件になります。kazu_1が1なので、kazu_2の値が何でも実行されます。

 さっきのelseとかを加えると、

       kazu_1 = 1;
       kazu_2 = 3;
       
       if( (kazu_1 == 1) && (kazu_2==2) ){
           System.out.println("kazu_1が1か、kazu_2が2です");    
       }else{
           System.out.println("kazu_1が1ではないか、kazu_2が2ではないです");    
       }

 みたいにできます。
 ifの「()」の中の条件の判定で、kazu_1が1で”なおかつ”kazu_2が2であるかを調べてるので、どちらかが異なれば、「else」の方に行くといった感じです。

 また、ifとelseと同じ階層で、「else if」というのも書けます。

       int kazu_1;
       int kazu_2;
       
       kazu_1 = 2;
       kazu_2 = 2;
       
       if(kazu_1 == 1){
           System.out.println("kazu_1は1");    
       }else if(kazu_2 == 2){
           System.out.println("kazu_2は2(kazu_1は1ではない)");    
       }else{
           System.out.println("kazu_1が1ではなく、kazu_2が2ではない");    
       }

 最初の「if」で条件を満たさなかった場合には、次の「else if」で判定処理が行われます。そこでも条件を満たさなかったら次の「else」に行きます。
 なお、「else if」は上記では一個ですが、最後の「else」の前に何個でも書けます。
 分岐の条件が複雑な時は、「if」「else if」「else if」~「else」のコンボで幾らでも分岐を作れるのです。
 分岐の条件が簡単な時は、「switch文」というまた別の分岐方法があるのですが、それはまた別の機会に。

この記事が気に入ったらサポートをしてみませんか?