2014-10-18

2014-10-18

for文Add Star

 

 

forとは

  • while文は、繰り返しの継続条件のみを指定する単純な構文に対し、for文は繰り返すたびに変数の値を増減させることができます
  • この変数を「カウンタ変数」と呼びます
  • 何回目の繰り返し処理を実行しているのか、という情報が必要なときなどにはfor文を用いる

 

 

while(初期化式 ; 継続条件式 ; 増減式) {

   繰り返す処理

}

 

 


 

式の種類説明実行タイミング
初期化式 カウンタ変数を初期化する代入式 最初の1回だけ実行される
継続条件式 繰り返しを継続する条件式 1回分の繰り返し処理の

 

最初に毎回実行される

増減式 カウンタ変数の値を

 

増減させる計算式

1回分の繰り返し処理の

 

最後に毎回実行される

 



《for文の利用》

  • カウンタ変数名は「i」(indexの意)とすることが慣例です

<!DOCTYPE html>
<htmllang="ja">
<head>
<metacharset="utf-8">
<title>for文の利用</title>
<script>
for(var i = 1 ; i <= 5 ; i++){
    console.log(i + "回目");
}
</script>
</head>
<body>
</body>
</html>


《実行結果》

 

f:id:web-javascript:20130523163117j:image

 


  1. 変数 i に1が代入される(初期化式)
  2. i が5以下かどうか検証される(継続条件式)
  3. i の値がコンソールに表示される
  4. i に1加算される(増減式)
  5. 継続条件式の結果がfalseになるまで(2~4)を繰り返す


for文の応用例

  • カウントダウン
for (var i = 5 ; i >= 1 ; i--) {  }


《配列とfor文》

  • 配列のインデックスをカウンタ変数で指定することで、配列の要素に対して1つずつ順に処理を実行できます

<!DOCTYPE html>
<htmllang="ja">
<head>
<metacharset="utf-8">
<title>配列とfor文</title>
<script>
varnumber = [10, 20, 30];
for(var i = 0 ; i < number.length ; i++){
    console.log(number[i]);
}
</script>
</head>
<body>
</body>
</html>


《実行結果》

 

f:id:web-javascript:20130523165246j:image

 


  • number.lengthは、配列numberの要素数を表します
  • よって、for文の継続条件は「i の値が0から3未満まで」になります
  • 配列numberのインデックスは先頭から順に、0、1、2ですから、ちょうどカウンタ変数の値がインデックスと対応します

for-in文

  • 任意の文字列をキーとする連想配列は、通常のfor文では扱うことができません
  • 連想配列の要素を1つずつ処理する場合、for文ではなく「for-in文」を利用します

 

 

for(var 変数名 in 連想配列名) {

   連想配列名 [ 変数名 ] とすることで各要素を参照できる

}

 

 


  • for-in文は、連想配列の要素数分繰り返しを実行します
  • 繰り返すたびに変数の連想配列のキーのうちいずれか1つが代入されます

連想配列とfor-in文》

<!DOCTYPE html>
<htmllang="ja">
<head>
<metacharset="utf-8">
<title>連想配列とfor-in文</title>
<script>
var favorites = {
    food : 'カレーライス',
    color : '青',
number : 7
};
for(var key in favorites){
    console.log(key + ' : ' + favorites[key]);
}
</script>
</head>
<body>
</body>
</html>


《実行結果》

 

f:id:web-javascript:20130523172212j:image

 


  1. 連想配列favorites の要素数が3つなので、for-in文の繰り返し回数は3回です
  2. 1回目の繰り返し処理では、変数key の中に「food」が代入されます
  3. 2回目は「color」、3回目は「number」というように、1回分の繰り返しごとにキーが1つずつ取得されます

キーが取得される順番は保証されないため、配列の先頭要素から順序どおりに処理をしたい場合には、for-in文は適しません。


 

 

  • while文に「カウント制限」を付け加えたものが、for文
  • 配列の要素を1つずつ処理する場合は、for文を使う
  • 連想配列の要素を1つずつ処理する場合は、for-in文を使う