質問: 下記のソースコードは"デジタルの目覚まし時計"ですが、疑問が生じましたので質問させていただきます。 時計のjavascript内の『時刻をチェック』に"flg=-1"とありますが、"function changeFlg(){}"内に"flg=1"と"flg=0"があるために、この数字(-1)は"0と1以外の数字"でしたらすべてコンピューターは正常に機能します。 このように任意に数字が変えられることは認められるのでしょうか。 なお、音は出ないように設定されています。 ``` デジタルの目覚まし音 選曲(停止) クラシック 目覚まし音 ```
回答: 設計上、認めないことが望ましいです。 上記の時計の場合、変数「flg」は flg = 0 ・・・ アラーム未設定状態(初期値) flg = 1 ・・・ アラーム設定状態 という、アラームのON/OFFを保持するための存在だと読み取れます。 変数「flg」に-1を設定している処理は、 「アラームを何度も鳴らさないようにするため、アラーム発生後にOFFにする」 ための処理であるように読み取れます。 であれば、上記の設定に従いアラーム未設定「flg = 0」にすることが望ましいです。 「flg = -1」という、設計外の値を設定しているがために、混乱を招きます。 混乱は不良の元です。 このソースコードは「flg = 1 と それ以外」を意識した設計に見えます。 「それ以外」の値として「0」を使用しているだけで、「1」以外であれば何でも良いのです。 設計上未定義の、浮いた値を使用することは、望ましいことではありません。 ※そもそもなぜ再生する音声ファイル名が「bgCol」なのでしょうか