udy JavaScript 0418-1 Hrスイッチ文


スイッチドア


1.一般的なスイッチドア


複数のifゲートはスイッチゲートで代用できます.
switch文は1つ以上のcase文からなり、defaultは必要ありません.
 switch(x) {
         case 'value1':  // if (x === 'value1')
           ...
           [break]

         case 'value2':  // if (x === 'value2')
           ...
           [break]

         default:
           ...
          [break]
       }
コードのプロセス
  • 変数xの値を第1の場合の値1と照合して比較し、第2の場合の値2と比較する.caseの個数に応じて、このプロセスは繰り返し続けます.
  • case文で変数xの値と一致する値が見つかった場合、case文の下のコードが実行され、break文に遭遇したり、switch文が完了したりすると、コードの実行が停止します.
  • xの値に一致するcase文がない場合、default文の下のコードが実行されます.
  • 	  let a = 2 + 2;
    
          switch (a) {
            case 3:
              alert( '비교하려는 값보다 작다. 다음 case문으로 이동' );
              break;
            case 4:
              alert( '비교하려는 값과 일치한다. 멈춘다.' );
              break;
            case 5:
              alert( '비교하려는 값보다 크다.' );
              break;
            default:
              alert( "조건에 맞는 값이 없다." );
          }
    上のコードにbreakがなければどうなりますか?
    		let a = 2 + 2;
    
            switch (a) {
              case 3:
                alert( '비교하려는 값보다 작습니다.' );
              case 4:
                alert( '비교하려는 값과 일치합니다.' );
              case 5:
                alert( '비교하려는 값보다 큽니다.' );
              default:
                alert( "어떤 값인지 파악이 되지 않습니다." );
            }
    これは上のコードでbreakだけを削除したコードです.
    これによりcase 4から、その後のすべてのalertが実行されます.

    2.複数のcase文をバンドルする

    	  let a = 3;
    
          switch (a) {
            case 4:
              alert('계산이 맞습니다!');
              break;
    
            case 3: // 두 case문 묶기
            case 5:
              alert('계산이 틀립니다!');
              alert("다시 계산해 보세요!");
              break;
    
            default:
              alert('계산 결과가 이상하네요.');
          }
    case 3と5は同じメッセージを表示し、case 3が本当であれば、breakがなく、case 5はbreakに遭遇する前にbreakがないため、コードは実行され続けます.

    3.資料型の重要性


    switch文はマッチング比較により条件を確認する.
    比較する値がcase文の値のタイプと値と同じである場合、case文は実行されません.
      	  let arg = +prompt("값을 입력해주세요.");
          switch (arg) {
              case '0':
              case '1':
                alert( '0이나 1을 입력하셨습니다.' );
                break;
    
              case '2':
                alert( '2를 입력하셨습니다.' );
                break;
    
              case 3:
                alert( '+prompt로 하지 않으면 이 코드는 실행되지 않는다!' );
                break;
              default:
                alert( '알 수 없는 값을 입력하셨습니다.' );
            }

  • 0または1を入力すると、最初のalert文が実行されます.

  • 2を入力すると、2番目のalert文が実行されます.

  • 3を入力しても、3番目のalert文は実行されません.
    これはprompt関数が文字列を返すため、文字列「3」と数値型3のタイプ自体が異なるためdefault文が実行されます.
  • ★case 3のalert文を実行するには、プロンプトを+プロンプトに変更します.
    case 0,1のalert文は実行できません.