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

SESSION 11 その28
メンバ変数(フィールド) つづき

じゃあ、
実際にプログラムを
動かしてみよう。

実行してみてくれ。


動作は今までと同じだろ?
はいっ!

問題ありませんっ!
バッチリ動きますっ!
そ、そう?
答え分かってる
のに?

変わった子
ね。。。
何度やっても
楽しいねー!


プログラムの動作が変わらないのを実行して確認して下さい

  メンバ変数(フィールド)の動作の流れ

今回、メンバ変数を使って
モード別処理を
関数化したわけだけど。

コードの処理の流れは
今までと全く同じ。

変数のスコープを変えて
関数呼出にしただけで
処理の流れはまったく
変わっていない。

だから、結果も前と同じ。
何も変わらないよ。
メイン関数
で宣言されてた
時と同じー
同じー
コードの形が
関数で変わったけど
変数を書き換える
流れは同じね。
 
 

     

そう言えば、ほら、
解答処理の部分を見てみろ。

メイン関数から
解答処理モード関数を呼んで
そこからさらに
正解チェック処理関数
を呼んでる。

関数の中から
関数を呼んでるな。
あっ!ほんとだ。

モード別の処理を
関数にしたからだね。

普通に使ってたー!
複雑じゃない
だろ?
難しく
考えないでも
いいんだね。
 

クイズゲーム完成 モード処理関数化
(KotoQuizのKQMain.java)12行目~
 
・・・      
012   public class KQMain {  
     
035     public static void main(String[] args) {
     
051      
052               //解答処理モード  
053               }else if(execMode == EXEC_MODE_CHECK){  
054      
055                   //解答処理モード関数呼び出し  
056                    execModeCheck();  
057      
058               }  
     
067           }  
     
078       }  
     
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
   
177        /**  
178        * 解答処理モード処理  
179        */  
180       private static void execModeCheck(){  
181      
182           //解答をチェックする  
183           switch(nowQuizNum){  
184               case 0:  
185                   //正解番号チェック  
186                   correctTotal = checkAnswerData(3,inputNum,correctTotal);  
187      
188                   break;  
189               case 1:  
190                   //正解番号チェック  
191                   correctTotal = checkAnswerData(1,inputNum,correctTotal);  
192      
193                   break;  
194               case 2:  
195                   //正解番号チェック  
196                   correctTotal = checkAnswerData(3,inputNum,correctTotal);  
197      
198                   break;  
199          }
     
214       }  
215      
216   }  
・・・    
関数の中から別の関数を呼んでいる

main関数から
execModeCheck関数を呼び
さらにcheckAnswerData関数を呼んでいる

処理の流れは今までと変わらない
 
 

     

同じ事
できるよね?
うーん・・・
でも、なぽちゃん。

メンバ変数は、
どの関数からも使えるんだから
値を渡したのと同じだよね。

しかも、全部の関数に共通で。


なら、関数に値を渡すのに
引数と戻り値なんて
いらないんじゃないかな?


戻り値は1個しか戻せないし。
戻さないと値消えちゃうし。
 
関数に値を渡す
メンバ変数と引数。

それぞれに利点が
あって使い分けが
必要
なんだよ。
  うっ・・・

また
嫌なトコ
気づき
やがった。
 


じゃあ、
引数とメンバ変数は
どう使い分ければ
いいの?
実はそれは
プログラムの設計では
すごい重要なところなんだ。


うーん、クラスもやってないし。
今言ってもピンと来ないと思うよ。

これからセッションを続けて
経験を積んでいけば分かるよ。

ゆっくりいこうね。。。
うーん
分かんない。
うっ、
まだ突っ込む?

スルーしてくれよ。

難しいとこ
気づくなあ。。。


うーん、じゃあ、
あたしよく分かんないから
これから全部メンバ変数で
書いちゃうね!


引数も戻り値も使わない!


そうすれば、変数名も
全部の関数で同じにできるよ。

その方が簡単で分かりやすいし。
ねっ!いいでしょ?
いいこと
だらけ!
 
・・・・・・。


クソプログラム
フエッ

さよなら


 
じゃあ、
引数にした場合の
利点を1つ見ておこう。
  しゅん・・・
ひどい・・・

だって
分かんない
んだもん・・・
冗談
だってば。。。

 
 

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