広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English
 

SESSION 8 その12
練習問題

さあ、if文のまとめに
練習問題をやろう。

さっきのif文の例を
拡張してくれ。

よーし、
ゲーム作っちゃうぞー!

もー、ゲーム
じゃないってば。
 

  練習問題1:問い


練習問題 1
 
問1:次の処理を
   プロジェクト名:KotoTest4の if文の例(if、else if、else)
   
に追加し、実行結果にメッセージを表示しなさい。
 
 
もし
 yuushaExp が 700以上 で
且つ
 yuushaExp が 800以下 なら
 
次のメッセージを表示する。
「エクストラレベルアップ!!!」
 
 
 

if文の例(if、else if、else)(KotoTest4のKNMain.java)17行目~
 
・・・      
017   public static void main(String[] args) {  
018            // TODO code application logic here  
019      
020            //変数 yuushaExpをint型で宣言。0に初期化  
021           int yuushaExp = 0;
022      
023            //もしyuushaExpが 1000以上 なら  
024          if(yuushaExp >= 1000){
025                  //レベルアップ!メッセージを表示  
026                  System.out.println("レベルアップしました!");  
027      
028            //もしyuushaExpが 900以上 なら  
029             }else if(yuushaExp >= 900){  
030                  //あと少し!もう少しメッセージを表示  
031                  System.out.println("あともう少し! " +  
032                                              "経験値:" + yuushaExp);  
033      
045            //それ以外なら  
046            }else{  
047                //レベルアップまでまだまだ!がんばれメッセージを表示
048                  System.out.println("もっとがんばれ! " +  
049                                           "経験値:" + yuushaExp);  
050            }      
051      
052            System.out.println("全処理終わり");  
053   }  
054      
・・・      
問題の処理を追加して下さい。
 
すごーい!
特別にレベルアップする
ゾーンがあるんだ!

絶対この経験値範囲、
狙わないとっ!
だからあー、
ゲーム
じゃないって。
いーの!

ポイントが
いくつの敵を
倒したら
なるのかなー


えーと、まず
「yuushaExp が 700以上なら」
の条件だから・・・

「900以上なら」より下に
書かないとだめなんだよね?

順番的に・・・大きい順だよね?

そうそう、判定は
条件式の順番が大事だよ。

もー、違うー。

独り言だもんー
なに?
ギブ?


もし、
「yuushaExp が 700以上なら」を
「900以上なら」より上に書いたら・・・

この例を見てみろ。

700の方が小さいからね。
yuushaExp にどんな値を入れても
「900以上なら」の処理は実行され
なくなるよ。
えー!
レベルアップできなく
なっちゃうんだー。

今回の判定の仕方なら
大きい数の判定ほど
上に書けばいい
んだね。
これも慣れな。

最初のうちは
しっかり悩んどけ。
そうなんだー。
難しいー!

なんとなくしか
分からないけど・・・
 
if文の条件式の順番による違い


うーん、うーん・・・
それから・・・

「かつ」ってことは
両方の条件を「同時に」判定しないと
ダメって事なんでしょ・・・?

if文だと、たくさん条件式は書けても、
一つづつしか判定できないんだよね。

うーん・・・
どうやってやればいいんだろう・・・
ふふーん
がんばれんじゃー。
うーんと、
うーんと、
難しいなあー。


じゃあ、ヒントをやろう。

ヒントは「入れ子」だよ
あっ!

分かったかも!
 
 

  練習問題1:解答


練習問題1:解答(KotoTest4のKNMain.java)17行目~
 
・・・      
017   public static void main(String[] args) {  
018            // TODO code application logic here  
019      
020            //変数 yuushaExpをint型で宣言。750に初期化  
021           int yuushaExp = 750;
022      
023            //もしyuushaExpが 1000以上 なら  
024          if(yuushaExp >= 1000){
025                  //レベルアップ!メッセージを表示  
026                  System.out.println("レベルアップしました!");  
027      
028            //もしyuushaExpが 900以上 なら  
029             }else if(yuushaExp >= 900){  
030                  //あと少し!もう少しメッセージを表示  
031                  System.out.println("あともう少し! " +  
032                                              "経験値:" + yuushaExp);  
033      
034            //もしyuushaExpが 700以上 なら  
035             }else if(yuushaExp >= 700){  
036                  //もしyuushaExpが 800以下 なら  
037                   if(yuushaExp <= 800){  
038                      //特別レベルアップ!メッセージを表示
045                        System.out.println("エクストラレベルアップ!!!");  
046                  }  
047            //それ以外なら  
048            }else{  
049                //レベルアップまでまだまだ!がんばれメッセージを表示
050                  System.out.println("もっとがんばれ! " +  
051                                           "経験値:" + yuushaExp);  
052            }      
053   }  
054      
・・・      
黄色の部分が追加・改変部分です。
書き写して実行して下さい。
実行結果(出力ウィンドウ)
おー、いい感じじゃね。

yuushaExp を750にしてるから
実行結果もちゃんと表示
出来てるし。

2つの条件に合った場合に
実行される処理もできてるしな。
 
 
えへへ
if文の中にif文を書いたの。

これなら両方の条件を
満たしてるでしょ?


かつ だよね?だめ?


ああ、それでいいんだよ。

この練習問題の重要な点は、
条件2つを満たす場合のみ
実行される処理のやり方だ。

一つだけじゃだめ。

つまり、「かつ」だね。

 
 

if文 且つ(2つの条件を同時)の判定


でも、今回は2つのifを使ったけど
論理演算子を使えば
1つのif文に複数の条件を
書くことも出来るんだ。
 
条件式
いっぱい
書けるんだ。
へー、
そんなやり方も
あるんだ。


論理演算子は
他の演算子と組み合わせることで
いろいろ柔軟な判定ができる。

じゃあ、次は
論理演算子を見ていこう。

はいっ

 
なんか
便利そうー
 
 

広告
home もくじ 前のページを読む 次のページを読む
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -
広告