熊本大学大学院教授システム学専攻
目次:
【第12回】JavaScript 2 (基本構文、制御構造(if, for, etc.))
第1章
--第12回タスクチェッカー
※公開科目にはありません
第3章
第4章
第5章

条件分岐制御文1(if...else)

【本節の目的】
条件分岐制御文は選択制御文とも呼ばれ、JavaScriptではその条件分岐の構文によってif...else構文とswitch...case構文があります。今節ではif文について説明します。

if...else構文の基本

if文の最も簡単な構文は下記の通りです。

if(評価式値)
   文1;

if(評価式値) {
   文1;文2;...
}

if文の評価式値がTRUE(真偽の真)であった場合には文1;あるいは{文1;文2;...}が 実行されます({文1;文2;...}の事をコンパウンド制御文と呼ぶことがある)。 もしif文の評価式値がFALSE(真偽の偽)であった場合は、JavaScriptの制御は そのif文の次の文へ制御が移動します(if文で指定した文は実行されない)。

if文にはif..else if...else....という構文もあります。 どちらかというと、こちらの方が一般的かも知れません。具体的には下記のよう になります。

if(評価式1値) {
   文1;
}
else if(評価式2値) {
   文2;文3;...
}
else {
   文4;文5;...
}

  1. 仮に評価式1の値がTRUEであれば、文1;が実行されます。この後JavaScriptの 制御はelse {...}の次の行へ制御が移ります。つまりelse if () {...}とelse {...}は実行されません。
  2. 次に評価式1の値はFALSEだが評価式2の値がTRUEである場合は、else if () {...}が実行されます。つまり{文2;文3;...}が実行されます。最初のif文の文1; は無視されます。{文2;文3;...}の実行が終われば、JavaScriptの制御は、 else {....}文以降へ移ります。
  3. また評価式1および評価式2が共にFALSEである場合は、else文以降の{文4;文 5;...}が実行され、文1;や{文2;文3;...}は実行されずに、else文の次の文へ 制御が移ります。

下記にif制御文を用いたサンプルプログラムを示しています。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <meta http-equiv="Content-Script-Type" content="text/javascript
 charset=utf-8">
 <title>if else文の実験</title>
</head>
<body>
<h3>if else文の実験</h3>
 <script type="text/javascript">
 <!--
   document.write('<br>');
   k=1;
   if(k==1) {
     document.write('k=',k,' kが1だったらこの行を表示する。');
     document.write('<br>');
     document.write('<br>');
   }
   i=2;
   if(i==1) {
     document.write('i=',i,' iが1だったらこの行を表示する。');
     document.write('<br>');
     document.write('<br>');
   }
   else if(i==2) {
     document.write('i=',i,' iが2だったらこの行を表示する。');
     document.write('<br>');
     document.write('<br>');
   }
   else {
     document.write('i=',i,' もしiが1でも2でもないならこの行を表示する。');
     document.write('<br>');
     document.write('<br>');
   }
   j=3;
   if(j>0) {
     document.write('j=',j,' もしjが0より大きかったら表示する。');
     document.write('<br>');
     document.write('<br>');
   }
   else {
     document.write('j=',j,' もしjが0以下だったら表示する');
     document.write('<br>');
     document.write('<br>');
  }
 //-->
 </script>
</body>
</html>

次節はswitch...case制御文についてです。

Copyright (c) Yasuo Musashi 2003, All Rights Reserved