2012年9月12日水曜日

制御構文(5/6)




■配列のための「for」

もう一つの使い方:「配列の全要素を取り出して処理する」

for(変数 in配列)とすると、JavaScriptは、配列から各要素のインデックスを順に取り出し変数に収めます。
連想配列:各要素のキーを順に変数を取り出す

<利用例>

ARRという配列に収められている要素を順に取り出し合計して、その結果を表示

for(n in ARR):配列ARRから各要素のインデックスを変数に収める

total += ARR[n] :というようにして、配列から順に要素を取り出し、totalに加算

*protram list*

 1 ・forの基本形
 2 for( 変数 in 配列 )
 3   ...実行する処理...
 4
 5
 6 ※サンプルスクリプト
 7
 8 <html>
 9     <head>
10         <script type="text/javascript">
11         <!--
12         var ARR = [5,10,15,20,25,30,35,40,45,50];
13         var total = 0;
14         for(n in ARR)
15             total += ARR[n]
16         alert("合計:" + total);
17         //-->
           </script>
18      </head>
19      <body>
20          <H1>TEST.</H1>
21      </body>
22 </html>

2012年9月6日木曜日

制御構文(4/6)


■細かな繰り返し制御を行う「for」
より細かな繰り返し制御:「for」
「繰り返し時の初期化処理」「繰り返しの条件チェック」「繰り返し後の処理」
3つの要素を持った繰り返し構文
for構文 → 「初期化処理」を実行 → 繰り返し条件をチェック
→ 結果trueならば → その後処理 → 戻る
forのもっとも多い使い方は、「繰り返し回数をカウントする変数を操作する」
<利用例>
ゼロから変数Nまでの整数をすべて合計する
for(var i = 0;i <= N;i++)
1.最初の繰り返しに入る前に「var i = 0」
2.繰り返しを行う際、「i <= N」をチェック
3.これが正しければ繰り返し部分の処理を実行
4.その後、「i++」を実行して再び条件のチェック
forのもっとも基本的な使い方
※代入演算子
「total += i;」は 「total = total + i」と同じ
A += B;   A = A + B と同じ
A -= B;   A = A - B と同じ
A *= B;   A = A * B と同じ
A /= B;   A = A / B と同じ
A %= B;   A = A % B と同じ
protram list
 1 ' for文の基本形
 2 for ( 初期化処理 ; 繰り返し条件 ; 繰り返し後の処理 )
 3     ....実行する処理....
 4
 5
 6 ※サンプルスクリプト
 7
 8 <html>
 9     <head>
10         <script type="text/javascript">
11         <!--
12         var N = 100;
13         var total = 0;
14         for(var i = 0;i <= N;i++)
15             total += i;
16         alert(N + "までの合計:" + total);
17         //-->
18         </script>
19     </head>
20     <body>
21         <H1>TEST.</H1>
22     </BODY>
23 </html>

2012年8月30日木曜日

制御構文(3/6)

x
■条件で繰り返す「while」
条件をチェックして繰り返す「while」
whileの後に0があり
条件となる値や変数、式などを用意
その値が正しい(真偽値のtrueである)間、その後の処理を繰り返す
値が正しくなくなる(falseになる)と繰り返しを抜けて次へ進みます。
2つの書き方の違い
「いつ、条件をチェックするか」
<最初にチェックする書き方>
繰り返しに入る前にチェック→最初から条件がfalseだった場合→繰り返し部分を全く実行せずに次へ
<最後にチェックする書き方>
まず、繰り返し部分を実行してから条件チェック→条件がfalseだったとしても、必ず1度は処理を実行
■利用例■
変数Nが素数かどうかをチェックするスクリプト
素数:1とその数自身以外の整数でわることができない値
実際に2~その数未満のすべての整数で割ってみればわかる
割った余りがゼロになることが1度でもあれば、それは素数じゃないということ
ここでは、numの値を2から順に増やしながら繰り返し実行
条件部分は、while(num<N)
つまり numの値が変数Nより小さい間、繰り返しを続けている
numの値は、繰り返しの最後で1増やしていますが、これは「num++;」
「++」というのは「インクリメント演算子」で、変数の値を1増やす
「--」は、変数の値を1減らす
*protram list*
 1 'while文の基本形(1)
 2 while(条件)
 3      ....実行する処理....
 4
 5 'while文の基本形(2)
 6 do
 7      ....実行する処理....
 8 while(条件);
 9
10
11 ※サンプルスクリプト
12
13 <html>
14     <head>
15         <script type="text/javascript">
16         <!--
17         var N = 887;
18
19         var num =2;
20         var result = true;
21         while(num < N){
22             if (N % num == 0){
23                 result = false;
24                 break;
25             }
26             num ++;
27          }
28          if (result)
29              alert(N + "は、素数です。");
30          else
31              alert(N + "は、素数じゃないです。");
32          //-->
33          </script>
34      </head>
35      <body>
36          <H1>TEST.</H1>
37      </body>
38 </html>

2012年8月23日木曜日

制御構文(2/6)


■値に応じてジャンプする「switch」
if:二者択一
細かな分岐が必要
「switch」
条件として指定した値をチェックし、その値に対応する場所にジャンプする働き
switchは、その後の()内にある変数や式などの値をチェックし、その値のcase文にジャンプし、そのにある処理をします。
case: 「case 値:」
注意:caseが終わっても、自動的に構文を抜けたりしない
caseの後に用意するスクリプトでは、最後に「brake」を用意
現在の構文から抜け出る働き
もし、対応するcaseがなかった場合には、「default」というラベルにジャンプ
<利用例>
変数Aに、今何時かを示す0~23の数字を入れると、その値に応じてメッセージが表示される
「var A = 13」
Aを6で割った値を使ってcaseにジャンプ
小数点以下まで細かく割ってしまいますので、整数部分の値だけを取り出せない
「Aを6で割った余りをAから引いて6で割る」という計算
*protram list*
 1 ※switchの基本形
 2 switch(値){
 3 case 値1:
 4     ....実行する処理....
 5     break;
 6 case 値2:
 7     ....実行する処理....
 8     break;
 9
10 ....必要に応じてcaseを用意....
11
12 default:
13      ....どれにも対応しない場合の処理....
14 }
15
16 ※サンプルプログラム
17
18 <html>
19     <head>
20         <script type="text/javascript">
21         <!--
22         var A = 13;
23         var n = (A - (A % 6)) / 6;
24         switch(n){
25         case 0:
26             alert('おやすみなさい....。夜中です。');
27             break;
28         case 1:
29             alert('おはよう。朝です。');
30             break;
31         case 2:
32             alert('こんにちは。昼です。');
33             break;
34         case 3:
35             alert('こんばんは。夜です。');
36             break;
37         default:
38             alert('ん? なんか変な時間ですよ?');
39         }
40         //-->
41         </script>
42      </head>
43      <body>
44          <H1>TEST.<H1>
45      </body>
46 </html>

2012年8月20日月曜日

制御構文(1/6)

制御構文(1/6)
■二者択一の条件分岐「if」
制御構文:スクリプトを実行していく流れを制御
「これを実行したら次はこっちにいって、それからこちらをやって・・・」
2つ:「分岐」と「繰り返し」
分岐:「必要に応じて実行する処理を変える」
繰り返し:「必要に応じて処理を繰り返し実行する」
「if」文:条件を指定しておき、その条件が正しいかどうかで実行する処理を変える働き
条件が正しい時に実行する処理を書くだけの書き方と、その後に「正しくない時に実行する処理」を追加して書く書き方
「条件」:「正しいか、正しくないか」を示す値・二者択一の値・「真偽値」・値でも変数でも式でも
一番使われるもの
「比較演算子」: =<>!
ifでは、実行する文は「1つだけ」しか記述できません。2文以上は書けない。
そこでJavaScriptでは、「複数の分を1まとまりとして扱えるようにする」ものを利用。{}
if (....){
    文1;
    文2;
}
elseのあとに書く場合も同様
<利用例>
HTMLに埋め込んで実際に動くスクリプト
sample.htmlとしてWebブラウザから開いてみる
画面に「NOT」と表示されます。違う値
同じ値なら「OK!」
「alert」という「関数」
*program list*
 1 ※ifの基本形(1)
 2 if(条件)
 3   ...実行する処理...
 4
 5 ※ifの基本形(2)
 6 if(条件)
 7   ...実行する処理...
 8 else
 9   ...実行する処理...
10
11
12 ※比較演算子について
13 A == B  AとBは等しい
14 A != B  AとBは等しくない
15 A <  B  AはBより小さい
16 A <= B  AはBと等しいか小さい
17 A >  B  AはBより大きい
18 A >= B  AはBと等しいか大きい
19
20
21 ※サンプルリスト
22
23 <html>
24     <head>
25         <script type="text/javascript">
26         <!--
27         var A = 10;
28         var B = 20;
29         if (A == B) alert("OK!");
30         else alert("NOT");
31         //-->
32         <script>
33     </head>
34     <body>
35         <H1>TEST.</H1>
36     </body>
37 </html>

2012年8月10日金曜日

値・変数・演算(4/4)

■値と変数の利用例

1.数値の演算

変数AとBを足したものを変数Cに設定
「それぞれの文の最後にセミコロンがある」
JavaScript それぞれの文の終わりは「改行か、またはセミコロン」

 1 1.数値の演算
 2 var A = 100;
 3 var B = 200;
 4 var C = A + B;

2.テキストの演算

Cは、"HelloBye!"

 6 2.テキストの演算
 7 var A = "Hello";
 8 var B = "Bye!";
 9 var C = A + B;

3.配列の利用

ARRという名前の配列を作成し、そのインデックス0と1を足し、インデックス2の値をかけたものをインデックス10に代入しています。ARR[10]の値は「9」になります。

11 3.配列の利用
12 var ARR = [1,2,3];
13 ARR[10] = (ARR[0] + ARR[1]) * ARR[2];

4.連想配列の利用

ARRという名前の連想配列を作成し、そこに'apple''orange'というキーを保管
それらの値を足し、'fruite'というキーに代入
ARR['fruite']の値は「30」

15 4.連想配列の利用
16 var ARR = {'apple':10,'orange':20};
17 ARR['fruite'] = ARR['apple'] + ARR['orange'];

2012年8月9日木曜日

値・変数・演算(3/4)

■配列について
「配列」:多数の値をまとめて管理するもの
1.配列の作成
[]記号を使う
「new Array」を使う
既に配列に収める値が用意されている場合には、[1,2,3]
まだ値が用意されていない場合は
「new Array()」で空っぽの配列を作成、その後、必要に応じて値を保管
2.要素とインデックス番号
配列では、保管している値は「インデックス」という番号を使って管理
この番号は、配列名の後に[]記号を使って指定
Aという名前の変数に配列を代入したとき、そのゼロ番に入っている値は、「A[0]」と記述
インデックス番号は、ゼロから。1ではない。
値はゼロから順に入れる必要はない。「ゼロに入れた後、次は10番でも」
3.連想配列
番号ではなく名前で管理したい場合 → 「連想配列」
連想配列は{}:{"A":1,"B":2,"C":3}
"A"、"B"、"C"がキー
「"A":1」というのは「"A"という名前のキーに1という値を設定する」
4.連想配列の要素とキー
連想配列に保管された値は、「配列キー」といった形で記述して利用
配列のインデックスの番号の代わりにキーを書く
注意:「インデックスは使えない」
連想配列は「キーでも値を設定できるのではなく」
「インデックスの代わりにキーを使う」 つまりインデックスは使えない
protram list
 1 1.配列の作成
 2 変数 = [ 値1,値2,.,,必要なだけ用意する]
 3 変数 = new Array();
 4 変数 = new Array( 要素数 );
 5 変数 = new Array( 値1,値2, ....必要なだけ用意... )
 6
 7 2.配列の値の利用
 8 変数 = 配列 [ インデックス番号 ]
 9 配列 [ インデック番号 ] = 値・変数など
10
11 3.連想配列の作成
12 変数 = { キー1: 値1, キー2: 値2, ...必要なだけ用意.... }
13 変数 = new Array()
14
15 4.連想配列の値の利用
16 変数 = 配列 [ キー ]
17 配列 [ キー ] = 値・変数など