[JavaScript]④関数の基礎とSwitch~case文
- 関数とは
- ボタンから関数呼び出し
- switch~case文
- 例題:県名を当てるゲーム
関数とは
- ひとまとまりの処理を関数名で呼び出せる
- メソッドと同じように引数を処理して値を返す
ボタンから関数を呼び出し
- head部分に関数を記述する
- 関数内の変数はその関数内だけで動作する
- ボタンに設定された.onclickをイベントハンドラという
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>関数</title> <script> function calc(){ document.write('2'); } </script> </head> <body> <h1>1+1の答えは?</h1> <button onclick="calc()">計算</button> </body> </html>
swith~case文
- if文と同様に分岐処理
- if文を簡略化
- ある変数の中身が一致するか判断する
- breakを設定しないと、値が一致したcaseキーワード以降の処理をすべて実行する
- breakは処理を停止しループから離脱する
- continueは処理を停止するがループに戻る
- defaultはif文のelseのように、caseのいずれの値にも一致しないとき行う処理
switch(変数){ case 値1: 変数の中身が値1に一致した時の処理; break;//ブロック文から抜ける case 値2: 変数の中身が値2に一致した時の処理; break; case 値3: case 値4: 変数の中身が値3または値4に一致した時の処理; break; default: どのcase文の値にも一致しない時の処理; }
switch~caseを組み込んだ繰り返し処理
日本でもっとも面積が大きい県を入力させるクイズ。 * 3回までミス可能、ミス時つづけて入力 * 1回目のミスでヒント「北海道は県ではありません」 * 2回めのミスでヒント「東北地方の県です」 * 3回めのミスで正解表示「答えは岩手県」 * ミスに応じた文章表示と繰り返し処理をswitch~caseで管理
<script> var count = 0; function question(){ var ans='岩手県'; var user = prompt('県名を入力してください','滋賀県'); if(user === ans){ alert('正解!'); count = 0; }else{ switch(count){ case 0: alert('ヒント:北海道は県ではありません'); count++; break; case 1: alert('ヒント:東北地方の県です'); count++; break; case 2: alert('正解は"岩手県"'); count = 0; break; } } } </script> </head> <body> <h1>日本でもっとも面積が大きい県は何県でしょうか?</h1> <p>2回までミス可能</p> <p><button onclick="question()">解答する</button></p> </body> </html>
- 変数を関数外部に書き初期化を回避。