制御構造

Index  Back  Next
【制御構造】

  プログラムを作成する上で、重要な概念として制御構造というものがあります。
 制御構造とは、プログラムの流れを制御する、条件判断やくりかえしといったもの
 です。この制御を行うのが、if 文や for 文と言った制御文です。ここでは、代表
 的な制御文について幾つか説明したいと思います。


1.【if else 文】

  if else 文は、
  if( 式 ) {
    文1
  } else {
    文2
  }
 のように、使用します。if else 文は () 内の式を評価し、もし式が true( 真 )
 なら文1を、flase( 偽 )なら文2を実行します。式というのは、
  a == b
 のような条件式で、これが満たされているなら式の値が true、満たされていないな
 ら false といいます。
  if( a == b && c > 0 ) {
    Name = "Taro";
  } else {
    Name = "Yamada";
  }
 上記の場合なら、a と b が等しくかつ c が 0 より大きいなら Name に文字列 Taro
 を格納、そうでないなら Name は Yamada になります。
【if 文の使用例】

 if 文を使って、1 から 10 までの整数を、奇数は赤色、偶数は青色で表示するプロ
 グラムです。
  <SCRIPT TYPE="text/JavaScript">
  <--
  var i;
  for( i = 1 ; i <= 10 ; i++ ) {  // (1)
    if( i % 2 == 1 ) {      // (2)
      // 赤色で奇数表示
      document.write( "<FONT COLOR='#FF0000'>", i );
      document.write( "</FONT><BR>" );
    } else {
      // 青色で偶数表示
      document.write( "<FONT COLOR='#0000FF'>", i );
      document.write( "</FONT><BR>" );
    }
  }
  //-->
  </SCRIPT>

【解説】

 (1) for 文により、外側のループ内の処理が i が 1 から 10 まで繰り返します。
 (2) i を 2 で割ったときの余りが 1 なら奇数、そうでないなら偶数と判定します。
   また document.write() のかっこ内の文字列はカンマ(,)で区切ることによって
   連結することができます。また + で連結することも可能です。従って以下の 2
   つの結果は同様に abc と表示します。
  document.write( "a" , "b" , "c" );
  document.write( "a" + "b" + "c" );

【実行結果】


2.【switch case 文】

  switch case 文は、
  switch( p ) {
  case p1:
    文1
    break;
  case p2:
    文2
    break;
  default:
    文3
    break;
  }
 のように、使用します。switch() 内の式を評価し、もし p が p1 と等しいなら文1
 を、p2 と等しいなら文2を、それ以外なら文3を実行します。プログラムの分岐点が
 多いときによく使用します。
【switch 文の使用例】

  上で作った if 文で作成したサンプルプログラムと同様の働きをするプログラムを
 switch 文で作ってみます。
  <SCRIPT TYPE="text/JavaScript">
  <--
  var i;
  for( i = 1 ; i <= 10 ; i++ ) {  // (1)
    switch( i % 2 ) {       // (2)
    case 0:            // (3)
      document.write( "<FONT COLOR='#FF0000'>", i );
      document.write( "</FONT><BR>" );
    break;
    case 1:
      document.write( "<FONT COLOR='#0000FF'>", i );
      document.write( "</FONT><BR>" );
    break;
    }
  }
  //-->
  </SCRIPT>

【解説】

 (1) for 文により、外側のループ内の処理が i が 1 から 10 まで繰り返します。
 (2) i を 2 で割ったときの余りが 0 の時に実行されます。
 (3) i を 2 で割ったときの余りが 1 の時に実行されます。
【実行結果】

  if 文で作ったプログラムと同様の結果が得られました。

3.【for 文】

  繰り返し制御文の一つ for 文について説明します。for 文の使用方法でもっとも
 多いのが、繰り返しの回数の決まった所定回反復です。for 文の一般的な書式を、示
 すと、
  for( 式1 ; 式2 ; 式3 ) {
    文
  }
 となります。式1はループ開始前に、一回だけ行われる初期化式です。式2はループ
 を抜けるときの、評価式です。式3は式1で初期化した値を再初期化するための式で
 す。これら 3 つの式をセミコロン(;)で区切ります。for 文の典型的な使用方法は、
  for( i = 0 ; i <= 100 ; i++; ) {
    j = j + 1;
  }
 といったようなもので、これは i を 0 からはじめ、i を 1 インクリメントしなが
 ら、j に i を加算したものを新たに j に代入していくものです。また、for 文以外
 の繰り返し制御文で while 文などがあります。これの使用方法としては、
  while( i <= 100 ) {
    i++;
    j = j + 1;
  }
 というようになります。働きは、i が 100 以下なら {} 内の処理を繰り返します。
【for文の使用例】

  for 文を使って、* で三角形を作るプログラムを作成してみます。
  <SCRIPT TYPE="text/JavaScript">
  <!--
  var i, j;
  for( i = 0 ; i < 10 ; i++ ) {
    for( j = 0 ; j < i ; j++ ) {    // (1)
      document.write( "*" );
    }
    document.write( "<BR>" );      // (2)
  //-->
  </SCRIPT>

【解説】

 (1) * を横に i 個表示する。
 (2) 改行。これがないと * がただ横に表示されるだけである。
【実行結果】