第18回 「入力ミスを防ぐ」


 前回は以下のようなプログラムでランダムにメッセージを表示しましたが、メッセージを追加するたびに「msg[参照番号]="表示文字"」のように参照番号部分を手作業でなおさなければいけませんでした。(下記プログラム)
 
<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript"><!--
msg = new Array();
msg[0] = "こんにちは";
msg[1] = "いい天気";
msg[2] = "みたいですね";
msg[3] = "おしまい";
msg[4] = "やっぱり再開?";
n = Math.floor(Math.random() * msg.length);
document.write(msg[n],"<br>");
// --></script>
</body>
</html>
 
 入力のたびに参照番号を入力したり修正したりすると間違いも発生しやすくなります。そこで別の方法で配列への代入を一括で行うことにします。
 JavaScriptでは
 
msg = new Array()

 のようにnew Array()で配列(オブジェクト)を生成する以外に以下のように[]も使うことができます。
 
msg = []

 []の中に文字や値を代入して記述することもできます。
 
msg = ["A","B","C"]

 このようにすると
 
msg[0] には 文字列としてA
msg[1] には 文字列としてB
msg[2] には 文字列としてC

 のように代入が行われます。この方法を使えばメッセージを追加したり削除したり順番をかえる場合でも参照番号を変更したりする必要がなくなりミスが減ります。
 この方法を使って書き換えたプログラムが以下のものです。 
 
<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript"><!--
msg = [ "こんにちは",
"いい天気",
"みたいですね",
"おしまい",
"やっぱり再開?" ];
n = Math.floor(Math.random() * msg.length);
document.write(msg[n],"<br>");
// --></script>
</body>
</html>

 これならば単純に表示する文字を追加するだけですむのでミスも少なくなり変更も楽になります。
 今度は「ことわざ」も表示させてみましょう。

<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript"><!--
msg = [ "こんにちは",
"いい天気",
"みたいですね",
"おしまい",
"やっぱり再開?" ];
n = Math.floor(Math.random() * msg.length);
document.write(msg[n],"<br>");
// --></script>
<hr>
■今日のことわざ<br>
<script language="JavaScript"><!--
kotowaza = [ "雨降って地固まる",
"人を見たら泥棒と思え",
"ただより高いものはない" ];
n = Math.floor(Math.random() * kotowaza.length);
document.write(kotowaza[n],"<br>");
// --></script>
<hr>
</body>
</html>

 よく見ると何となく似たような部分があります。似たような部分があれば「関数」として定義しておけば便利です。
 次回は関数について説明します。





2002-2004 Copyright KaZuhiro FuRuhata (古籏一浩)