ラベル JavaScript制御構文 の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript制御構文 の投稿を表示しています。 すべての投稿を表示

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>