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

SESSION 9 その30
while文 つづき

今回の例は、定数も使ってるし
コメントの見出しもかわいいね。

だんだん、
本格的になってきたねー。
コードが増えてきたからね。
見やすくするために
とりあえず見出しをつけたよ。

見やすくするために、
試行錯誤する癖をつけような。
よくできました。
ハイハイ、
あんがとね。

ちゃんとした見出しは
そのうち考えような。
 

while文の例(KotoTest11のKNMain.java)20行目~
 
・・・      
020             //***** 定数 *****
021             final int LIFE_POINT_MAX = 1000;//生命力最大値  
022             final int KAIFUKU_POINT = 200;//1回の回復量  
023      
024           //***** 変数 *****
025             boolean loopFlg = true;//ループ継続フラグ  
026             int yuushaLifePoint = 0;//勇者生命力  
・・・      
 



 
あっ、
勇者生命力変数は
whileブロックの外で
宣言
してるね。
 
ブロックの中で宣言すると
毎回初期化されちゃうだろ。


これだと加算できない。
しても毎回0になっちゃう。

値を保持しつづける変数は
ブロックより上で宣言しよう。


これはどの制御文でも同じ。
  制御文というより
変数の有効範囲の
問題ね。
 
 
ループ時の変数の宣言場所による違い(ループ内)

ループ時の変数の宣言場所による違い(ループ外)
 

while文の例(KotoTest11のKNMain.java)24行目~
 
・・・      
024           //***** 変数 *****
025             boolean loopFlg = true;//ループ継続フラグ  
026             int yuushaLifePoint = 0;//勇者生命力  
027      
028             //***** 処理 *****  
029      
030             while(loopFlg == true){  
031                      //回復処理  
032                      yuushaLifePoint = yuushaLifePoint + KAIFUKU_POINT;  
・・・      
変数 yuushaLifePoint はwhile文のブロックの外で宣言しているので、
ループしても変数は初期化されない。

ループを通して継続使用する変数はブロック外で宣言する必要がある。


もちろん、
ブロック外で宣言した変数は
ブロックを抜けた後も使える。

ブロック内で値を書き換えた
場合は、その値のままだよ。
変数って宣言する場所で
中の値が消えたり、
残ったままだったりする・・・。

気をつけよ。

スコープの
有効範囲内
だからね。

しつこいけどもう1回
きちんと理解して
ほしいんで。
慣れないとね。
 
変数の有効範囲

 
 

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