くろひょうのwebデザインのお勉強帳

フェリカテクニカルアカデミー web制作科の受講生です。授業の要点、復習でつまづいた点などを記録し、レベルアップに励みます。

クリエイターになるための、お勉強の記録帳

[Javascript]for文の多重ループ

for文と多重ループ

for文は多重ループ(for文の中にfor文を入れる)にできます

 

for ( 変数iの初期値 ;   ;   ) {
   for (   変数jの初期値 ;   ;   ) {
        処理の結果(J)
   }
 処理の結果(I)
}

 

この場合の処理の順序は、次のようになります

  1. まず変数iを参照します
  2. Jの処理を繰り返し行う
  3. 2の処理の終了後、iの処理を行う

 

 

 

【演習1】九九表の作成

f:id:pleasure10501:20150402195908p:plain

<body>
<h3>九九表</h3>
<table border="1"> 
<tr>
    <th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th>  ・・・ポイント2
</tr>
<script>  ・・・ポイント1
var i;
var j;  ・・・ポイント4

for ( i = 1; i<=9; i++ ) {

    document.write ('<tr>');
    document.write ('<th>' + i + '</th>'); ・・・ポイント3

    for ( j = 1; j<=9; j++ ) {
        document.write ( '<td>'+ i * j +'</td>' );  ・・・ポイント5
    }

document.write ( '</tr>' );  ・・・ポイント6
}
</script>
</table>
</body>

 

*ポイント

  1. <table>タグの中にJavascriptを埋め込み
  2. 横軸の1〜9はHTMLで記述
  3. 縦軸の1〜9はJavascriptのループを利用。変数iが増加。行が作られる
  4. 変数iにかける数字を変数jとする
  5. 変数i×jの値が<td>セルに表示される。
    かつ、変数jは9になるまでi×jを繰り返す
  6. 計算終了後<tr>タグを閉じて終了

 

 【演習2】下の表をJavascriptを使って作成する

f:id:pleasure10501:20150402213245p:plain

<コード>

<style>
table {
  width: 600px;
  text-align: center;
}
th {
  background: #BFF;
}
</style>
</head>
<body>
<h3>単価×個数の一覧表</h3>

<table border="1">
<tr>
<th>個数</th><th>商品A</th><th>商品B</th><th>商品C</th>
</tr>

<script>
var i; //個数
var j; //単価の[ ]の中の数字
var tanka = [300, 450, 520]; //商品単価

for ( i = 1 ; i<= 10 ; i++ ) {
  document.write ( '<tr>' ) ;
  document.write ( '<th>' + i + '</th>' ) ;

  for ( j =0 ; j<=2 ; j++){
      document.write ('<td>' + i  * tanka[ j ] + '円 </td>') ;
  }
document.write ( '</tr>' ) ;
}
</script>
</table>
</body>
</html>

 

*ポイント

  • 1行目はHTMLに記述
  • 個数の1〜9と、商品価格はループを使用して表示する
  • 単価は配列を使っており、インデックス番号をjで表している
     jが1の時 → tanka [ j ]は300
     jが2の時 → tanka [ j ]は450
     jが3の時 → tanka [ j ]は520