Java② 苦手分野克服
先月C言語をやっていた際も条件分岐の部分に苦しんでいたのですが、今月Javaをやっていてもどうにも苦手意識が抜けないためこちらの本を参考にいくつかのプログラムを組んで練習することにしました。
天気による行動変化
天気が晴れ(true)であったら「洗濯する。」「散歩する。」
天気が雨(false)であったら「DVDを見る。」と表示させるプログラムを組みます。
まずは、晴れ(true)の場合から。
3行目にtrueを代入したことによりその行動が表示されました。続いて、雨だった場合は・・・
3行目にfalseを代入したことにより、その行動が表示されました。
もしトイレに誰かが入っていたら?
トイレに誰かが入っていた(true)場合、「ノックする。」「1分待つ。」を繰り返すプログラムを組みます。falseの場合は何も表示されないため、今回はtrueの場合のみを追っていきます。上部にコードを書き、実行ボタンを押したのですが・・・
「Timeout」となってしまいました。これは、「Ctrl+c」で強制終了しない限り延々と「ノックする。」「1分待つ。」が繰り返し表示されるプログラムであるため恐らくこのような結果になったのだと思われます。ちなみに、コマンドプロンプトで実行した様子はこのような感じです。強制終了するまでこれがずっと続くという若干の狂気を感じるプログラムですね・・・
数当てゲーム
0~9までの整数の中からランダムな数を1つ生成し、その数字を当てるプログラムを組みます。for文を用いてループを作り、制限は5回まで。数を当てられたら「当たり!」、外れたら「ハズレ」、5回以内に正解できなかった場合は「ゲームを終了します。」と表示させます。
コードを書いたら、下部の「入力」タブに数字を表記し実行ボタンを押します。
外してしまいました。「出力」タブの隣にある「実行時エラー」に関してですが・・・内容としては以下の通りになります。
いろいろと調べた結果、入力タブに数字が記入されていない状態であるとこのようなエラーが出るようです。上記のように数字を入力してもゲーム自体は「5回まで」は続くため、同様にエラーが吐き出されてしまったのでは、という推測です。当初、入力タブの機能をよく分かっておらず何も入力せずに実行したところ同じエラーが表示されました。
コマンドプロンプトで実行した際にはただひたすら数字を入力して当てにかかるだけなのですが、こちらで実行すると入力タブを使うしかないのか?という疑問が残りました。要は、仮に1回目外れたとして2回目に挑もうと入力タブに続けて(改行して)数字を入力すれど、一旦すべて消してから新たに数字を入力すれど、実行ボタンを押してしまえば1回目の状態に戻ってしまうといった状況でした。最初から入力タブに5回分の数字を記載しておけばよいのかとも思いましたが、やはり1回目と同じ扱いで「ハズレ」と出てしまったため、このあたりに大きく疑問が残る結果となってしまいました。
まだまだpaiza.IO自体使いこなせていないのかもしれません・・・ブラウザ上でプログラミングをできる他のサイトと比較もしつつ、もう少し探っていきたいと思います。