練習問題 |
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
じゃあ、テストな。
新プロジェクトを作って
「KotoTest10」のfor文の例を
while文に書き換えてくれ。 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
「KotoTest12」
を作ってね。 |
|
あと、
処理の
順番かな。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
はいっ。
ポイントは、while文には
カウンターが無いところ
だよね。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
練習問題 4 |
|
問:プロジェクト名:KotoTest10の for文の例
を、
for文からwhile文を使った形に変更しなさい。 |
|
|
|
|
|
 |
|
 |
|
|
 |
|
 |
|
for文の例(KotoTest10のKNMain.java)17行目~ |
|
・・・ |
|
|
|
017 |
|
public static void
main(String[] args) { |
|
018 |
|
// TODO code
application logic here |
|
019 |
|
|
|
020 |
|
for(int
i = 0;i < 10;i++){ |
|
021 |
|
//現在のカウントをロケットの号数に補正 |
|
022 |
|
int
num = i + 1; |
|
023 |
|
|
|
024 |
|
//ロケットを打ち上げるメッセージを表示 |
|
025 |
|
System.out.println("ロケット" +
num + |
|
026 |
|
"号機を打ち上げました。"); |
|
027 |
|
} |
|
028 |
|
|
|
029 |
|
//終了メッセージ |
|
030 |
|
System.out.println("計画完了"); |
|
031 |
|
|
|
032 |
|
} |
|
・・・ |
|
|
|
|
|
|
|
 |
|
 |
|
|
あんま
気張るなよ。 |
|
|
 |
あたしは
できる! |
|
|
|
|
|
 |
|
|
|
|
 |
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
for文の改変前の、
一番最初の例じゃない。
これなら大丈夫! |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
えーと、まずは
処理の順番考えて・・・・
それから、カウンター用の
変数を作って・・・
終了チェックの仕方も
変えなきゃだめかな・・・
うーん、for文では
「10未満なら開始」だから、
while文では、逆にして
「10以上なら終了」にすれば・・・ |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
カチャカチャ |
えーと
えーと・・・
ちょっと
難しいな・・・ |
 |
|
 |
焦んないでね。 |
|
|
|
タンッ |
完了! |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
うーんと、うーんと・・・
for文の処理の順番は
最後にカウントアップだから・・・
よし、できた!
こんな感じかな。
どうかな? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
意外と
順調ね。 |
|
|
 |
実行結果(出力ウィンドウ) |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ああああー!!
テストで実行したら・・・
あれ、終わんないよー!
なんでー???
無限ループしてる???
とっ、止めなきゃ!
止めなきゃ! |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
 |
あわわ・・・
ロケットが
飛びすぎだよー |
|
さすがに
ちょっと
慣れてきたね。
進歩、進歩。 |
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
 |
 |
|
慌てるなって。
今までと同じように
停止ボタンで止めれば
いいから。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
なんでできないの???
終了チェックもちゃんと
「10以下なら終了」に
変えたし・・・。
ちゃんとやってるのにー!
なんでー??? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
あのさ、
変数の有効範囲を
思い出してくれよ。
なんで、
勇者生命力変数は
ブロック外で宣言して
たんだっけ? |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
分かんないー |
 |
|
 |
ちゃんと
やってませんよー。 |
|
|
|
 |
|
 |
|
練習問題4 ことの解答:仮(KotoTest12のKNMain.java)17行目~ |
|
・・・ |
|
|
|
017 |
|
public static void
main(String[] args) { |
|
018 |
|
// TODO code
application logic here |
|
019 |
|
|
|
020 |
|
while(true){ |
|
021 |
|
//カウンター用の変数を宣言・初期化 |
|
022 |
|
int
i = 0; |
|
023 |
|
|
|
024 |
|
//現在のカウントをロケットの号数に補正 |
|
025 |
|
int
num = i + 1; |
|
026 |
|
|
|
027 |
|
//ロケットを打ち上げるメッセージを表示 |
|
028 |
|
System.out.println("ロケット" +
num + |
|
029 |
|
"号機を打ち上げました。"); |
|
030 |
|
|
|
031 |
|
//最後にカウントをアップする |
|
032 |
|
i = i +
1; |
|
033 |
|
|
|
034 |
|
//終了チェック処理 |
|
035 |
|
if(i >= 10){ |
|
036 |
|
break; |
|
037 |
|
} |
|
038 |
|
} |
|
039 |
|
|
|
040 |
|
//終了メッセージ |
|
041 |
|
System.out.println("計画完了"); |
|
042 |
|
|
|
043 |
|
} |
|
・・・ |
|
|
|
|
無限ループする原因を探してください。 |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
あ、そうか。
変数の有効範囲!
勇者生命力変数が
そうだったっけ。。。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
 |
 |
 |
|
|
|
|
 |
|
|
|
|
|
ごめーん。
忘れてた。 |
 |
|
 |
まあ、
最初のうちは
こんなもんだよ。 |
|
|