プログラムの構造を見直す つづき |
イメージで
いいんだよね? |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
えーと・・・できた!
見て見て、
なぽちゃん!
どうかな! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
どれどれ~
んふ~ !
ダメなの分かってても
ちょっとは褒めて
やらないとねえ。。。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
今度は
ブロックで泣き顔
でも作ったかな。
ウヒヒ |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
えっと・・・
「画面単位」の処理を丸ごと
横に並べてみました。
これでループするたびに
「画面単位」で処理を切り替えれば
いいんじゃないのかな?
最初は問題画面で、
次は解答画面って。
シンプルになるよね!
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
う・・・
いい感じ。
これなら
1回のループに
1回の入力と
1回の出力
になってるし。
2つループがなくてもできるよな。
俺が考えてたのと同じ・・・。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
どうかな?
どうやって
切り替えるかは
分からないけど・・・。
|
 |
|
 |
うそーん |
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
でね!
入力処理って内容が同じでしょ。
こんな感じに
両方の画面の入力処理を
統一できるんじゃないかな!
実際のコードだと
待機処理が一番最後だよね。
どうかな?
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
イメージで
いいんだよね?
どうしたの、
なぽちゃん?
|
 |
|
 |
しょぼーん |
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
フンッ、
それでいいと思うぞ。
俺が考えてたのと
ほとんど同じだよ! |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
へっ。
優秀なこって。
俺は苦労して
理解したのに。
センスがあって
うらやましいわあ。 |
|
もおー
褒めてよー。 |

|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
な、なんで
怒ってるのー!
あたし、なんか
悪いこと言った!? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
お前の言う構造で
キー入力処理も統合もできる。
だから、コードでは待機処理を
一番最後にしといたんだよ。
最後にしておけば
問題画面でも解答画面でも
入力が最後にそろって統合しやすい。
構造を組み変える予定だった
からね。そう作っといたの。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そっか、
最後にしておけば
この図みたいに
統合しやすいね。
「後で分かる」って
こういうことだったんだ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
謎だ。
利口なのか
たりーんなのか
ほんと
よー分からん
ヤツだ。 |
 |
|
 |
やったー
合ってたー。
嬉しい! |
|
|
|
|
|
|
|
「画面単位」と
「機能単位」の
視点の違いね。
今回の場合は
まったく
同じだけどね。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
図を見てくれ。
今回は「画面単位」で
構造を考えてきたよな。
これを
「機能単位」として見ると
「モード別処理」とも言える。
・画面表示モード
・解答処理モード
モード別の処理として
ループ内で切り替えて
使えばいいんだよ。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そっか、
問題処理モードと
解答処理モード
なんだ!
機能別に分ける
こともできるんだね。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
なるほど!
いろいろな
分け方が
あるんだ。 |
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
でも、
どうやってモードを
切り替えれば
やればいいのかな。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
if文と定数を使って
モード別処理にすれば
いいだけだよ。
実際に作ってみたほうが
分かりやすいね。
早速作り変えてみよう。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
 |
別に
if文じゃなくて
switch文でも
いいよ。 |
|
|