オンラインテキスト目次
Javascript入門目次

Javascriptの条件文

目次
日付オブジェクト
if条件分岐文
if文の演習
Switch条件分岐文
Switch文の演習
目次

日付オブジェクト

まずJavascriptで日付を取得する方法を紹介する。 Javascriptで日付情報を得るには、Dateオブジェクトを使う。 オブジェクトの使い方は使用例を見ながら慣れていくこと。 次は、スクリプトとその結果である: UTC+0900とは、日本時間はUTC(世界協定時刻)から+9時間ずれていることを示している(示されている時刻[13:29:52]がUTCではない)。

スクリプト結果
<script type="text/javascript">
<!--
var today = new Date();
var year = today.getYear();
var month = today.getMonth();
var date = today.getDate();
var day = today.getDay();

document.write("today = ", today,"<br>");
document.write("年 = ", year, "<br>");
document.write("月 = ", month, "<br>");
document.write("日 = ", date, "<br>");
document.write("曜日 = ", day,"<br>");
// -->
</script>
today = Sat Jun 16 13:29:52 UTC+0900 2001
年 = 2001
月 = 5
日 = 16
曜日 = 6

左の説明から、 document.write()は、documentオブジェクトのwrite()メソッドを使っていることに気づきましたか?

スクリプト1行目のvar today = new Date();では、変数todayDateオブジェクトのインスタンス(instance)を新たに生成して格納している。 2行目のyear = today.getYear()は、Dateオブジェクトから年を取得するメソッド(方法) getYear() を使って年を取得して変数yearに代入している。 同様に、getMonth() は、Dateオブジェクトから月を、getDate() は、Dateオブジェクトから日を、getDay() は、Dateオブジェクトから曜日を取得するメソッドである。

問題は、getMonth()getDay()の出力結果である。 これらもメソッドが返す値は数字であるが、次の表のように理解すべきである:

getMonth() 実際の月 getDay() 実際の曜日
0 1月 0 月曜
1 2月 1 火曜
2 3月 2 水曜
3 4月 3 木曜
4 5月 4 金曜
5 6月 5 土曜
6 7月 6 日曜
7 8月
8 9月
9 10月
10 11月
11 12月

目次

if 条件分岐文

条件によって、処理を分岐させるための構文としてif文がある。 一般的構文は次のようである: 条件式真(true)であれば記号{}で囲った部分にある処理スクリプトを実行する。 最後のelseはそれまでの条件式に合致しない「その他の場合」を処理するブロックであり、省いてもよい。

分岐条件 多重分岐 一般多重分岐
if (条件式A) {
    文1;
    文2;
    ...
} else {
    文3;
    文4;
    ...
}
if (条件式A) {
    文a1;
    文a2;
    ...
} else if (条件式B) {
    文b3;
    文b4;
    ...
} else {
    文5;
    文6;
    ...
}
if (条件式A) {
	文a1;
	文a2;
	...
} else if (条件式B) {
	文b3;
	文b4;
	...
} ...
   ...
   ...
} else if (条件式Z) {
	文z5;
	文z6;
	...
} else {
	文7;
	文8;
	...
}

目次

if文の演習

以上を踏まえて、日付を取得するスクリプトを改良しよう。
  1. DateインスタンスからメソッドgetMonth()で得られた数値に応じて、月名を変数に代入する次のスクリプトを実行してみよ。 記号 == は左辺の式と右辺の式の値が等しいかどうかを比較し、等しければtrue、等しくなければfalseを返す比較演算子の1つである:

    <script type="text/javascript">
    <!--
    var today = new Date();
    var year = today.getYear();
    var num_month = today.getMonth();
    var month;
    var date = today.getDate();
    var num_day = today.getDay();
    var day;
    
    if (num_month == 0){
    	month = "1月";
    } else if (num_month == 1){
    	month = "2月";
    } else if (num_month == 2){
    	month = "3月";
    } else if (num_month == 3){
    	month = "4月";
    } else if (num_month == 4){
    	month = "5月";
    } else if (num_month == 5){
    	month = "6月";
    } else if (num_month == 6){
    	month = "7月";
    } else if (num_month == 7){
    	month = "8月";
    } else if (num_month == 8){
    	month = "9月";
    } else if (num_month == 9){
    	month = "10月";
    } else if (num_month == 10){
    	month = "11月";
    } else {
    	month = "12月";
    }
    
    document.write("today = ", today,"<br>");
    document.write("年 = ", year, "<br>");
    document.write("月 = ", month, "<br>");
    document.write("日 = ", date, "<br>");
    document.write("曜日 = ", day,"<br>");
    // -->
    </script>
    

  2. if条件分岐文を使って、getDay()メソッドで得られる数値に応じて、曜日変数dayに月曜〜日曜を代入し、正しく日付情報を表示するJavascript を含んだHTMLファイル date01.html を完成せよ。
目次

Switch条件分岐文

上のような場合(1つの整数値変数の値だけを手がかりに分岐させる場合)にif文はメンドウである。 こんなときにはswitch条件分岐文を使うと便利だ。 switch文では、1つの変数が複数の値を取る場合に応じて処理を分岐させることができ、一般構文は次のようである。 それぞれのcase文で処理ブロックから抜けるようにbreak;を使っていることに注意する。

Switch分岐条件構文
switch (変数) {
case: 値A:
    文a1;
    文a2;
    ...;
    break;
case: 値B:
    文b1;
    文b2;
    ...;
    break;
....
....
case: 値Z:
    文z1;
    文z2;
    ...;
    break;
default:
    文3;
    文4;
    ...;
}

目次

switch文の演習

if文を使って日付を取得するスクリプトをswitch文を使って改良しよう。
  1. DateインスタンスからメソッドgetMonth()で得られた数値に応じて、Switch文で月名を変数に代入する次のスクリプトを実行してみよ。

    <script type="text/javascript">
    <!--
    var today = new Date();
    var year = today.getYear();
    var num_month = today.getMonth();
    var month;
    var date = today.getDate();
    var num_day = today.getDay();
    var day;
    
    switch (num_month){
    case 0:
    	month = "1月";
    	break;
    case 1:
    	month = "2月";
    	break;
    case 2:
    	month = "3月";
    	break;
    case 3:
    	month = "4月";
    	break;
    case 4:
    	month = "5月";
    	break;
    case 5:
    	month = "6月";
    	break;
    case 6:
    	month = "7月";
    	break;
    case 7:
    	month = "8月";
    	break;
    case 8:
    	month = "9月";
    	break;
    case 9:
    	month = "10月";
    	break;
    case 10:
    	month = "11月";
    	break;
    default:
    	month = "12月";
    }
    
    document.write("today = ", today,"<br>");
    document.write("年 = ", year, "<br>");
    document.write("月 = ", month, "<br>");
    document.write("日 = ", date, "<br>");
    document.write("曜日 = ", day,"<br>");
    // -->
    </script>
    

  2. Switch条件分岐文を使って、getDay()メソッドで得られる数値に応じて、曜日変数dayに月曜〜日曜を代入し、正しく日付情報を表示するJavascript を含んだHTMLファイル date02.html を完成せよ。

目次
Javascript入門目次
オンラインテキスト目次
mizutani@rsch.tuis.ac.jp