| 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回
 きちんと理解して
 ほしいんで。
 |  |  | 
									
										|  | 慣れないとね。 |  |  |  
								|  |  
								|  |  
 |