JavaScriptコントロールフロー

40558 ワード

JavaScriptでは、if条件判定文、for循環文、while循環文、do…while循環文、break文、continue文、及びswitchの複数の分岐文の7つの制御フロー文を提供しています.
  • 割当文
  • 条件判定文
  • 循環制御文
  • ジャンプ文
  • 賦値文:プログラムでは、プログラムで使用するデータを大量に変数に記憶する必要があります.変数を賦課するためのステートメントもプログラムに大量に表示されます.
       =   ;
    キーvarを使用して変数を宣言すると、宣言の変数に対して、賦値文を使用して同時に値を付けることができます.
    var varible = 50;
    var varible = "        https://www.cnblogs.com/cmd5/";
    var bue = true;
    変数を使用する前に声明を出すことを提案します.変数を宣言する最大の利点はコードの中のエラーを直ちに発見できることです.この点は深く理解しています.理由はJavaScriptは動的コンパイルを採用しています.動的コンパイルはコードの中の誤りを発見するには不適です.
    条件判断文:
    条件判定文は、文の条件によって異なる値を判断します.今日は条件によって異なる文を実行します.
    条件判定文は主に2種類に分けられます.
    if文
    switch多分岐文
    簡単なif文:
    簡単なif文の文法形式は以下の通りです.
    if(expression){
         statement1  
    }
    パラメータの説明:
    expression:条件式を指定するための必須オプションであり、論理演算子を使用することができます.
    statement 1:実行するステートメントのシーケンスを指定します.expressionの値がtrueの場合は、このステートメントのシーケンスを実行します.
    使い方:
    var a=200;                 //    a,  200
    var b =100;          //    b,  100
    if(a>b){                    //    a  ,      b  
           alert('a  b');      //    a  b
    }
    if(a    alert('a  b');          a  b
    }

    実行結果
    a  b
    if...else文:
    expressionの値がfalseである場合、else従文の内容を実行します.文法形式は以下の通りです.
    if(expression){
             statement1  
    }else{
             statement2
    }       
     
    上記のif文は典型的な二路分岐構造であり、ここでelse部分は省略され、statement 1は単一の文である場合、
    その両側の大かっこも省略できます.
    変数値によって出力が異なり、異なる内容が出力されます.
    var form=0;
    if(form==1){
              alert('form==1');   
    }else{
             alert('form!=1');
    }        
    実行結果
        
    form!=1
     
    if...else if文:
    if文は柔軟な文です.if...else文の形式以外に、if...else if文の形式も使えます.
    if…else  if文の構文フォーマット:
    if(expression){
             statement 1  
    }else if{
             statement 2      
    }
    ...
    else if(expression){
             statement n
    }else{
            statement n+1
    }       
    else if文で多条件を判断する
    プログラムリスト:ユーザがユーザ名とパスワードを入力しているかどうかを判断する.
    (1)ページにユーザー登録フォームとフォーム要素を追加します.コードは以下の通りです.
    <form name="form1" method="post" action="">
            <table width="221" border="1" cellspacing="0" 
                           cellpadding="0" bordercolor="#fff" 
                           bordercolordark="#CCC" bordercolorlight="#fff">
                <tr><td height="30" colspan="2" bgcolor="#eee"> 
                                        td>tr>
                <tr>
                    <td width="59" height="30">   td>
                    <td width="162"><input type="text" 
                                name="user">td>
                tr>
                <tr>
                    <td height="30">  td>
                    <td><input type="password" name="pwd"> 
                            td>
                tr>
                <tr>
                    <td height="30" colspan="2" align="center"><input type="button" name="Button" class="btn_grey" value="  " onclick="check()">
                         
                        <input type="reset" name="Submit2" class="btn_grey" value="  ">
                    td>
                tr>
            table>
    form>
    (2)カスタムJavaScript関数check()を作成し、登録情報が空かどうかif文で検証します.check()関数の具体的なコードは以下の通りです.
    <script type="text/javascript">
            function check(){
                var name = form1.user.value;
                var pwd = form1.pwd.value;
                if ((name=='')||name==null) {
                    alert('      ');
                    form1.user.focus();
                    return;
                }else if((pwd=="")||(pwd==null)){
                    alert('     ');
                    form1.pwd.value;
                    form1.pwd.focus();
                    return;
                }else{
                    form1.Submit();
                    
                }
    
            }
        script>
     
    else if文を使って挨拶を出力します.
    まず変数を定義して現在の時間を取得し、getHours()法を適用して現在の時間値を取得し、最後にelse if文を適用して、異なる時間帯に異なる挨拶を出力すると判断します.
    プログラムリスト:
    <script type="text/javascript">
            var date = new Date();
            var hours = date.getHours();
            if (hours>5&&hours<=7) {
                alert('   ');
            }else if (hours>7&&hours<=11) {
                alert('   !     ');
            }else if (hours>11&&hours<=13) {
                alert('   !');
            }else if (hours>13&&hours<=17) {
                alert('   !');
            }else if (hours>17&&hours<=21) {
                alert('   !');
            }else if (hours>21&&hours<=23) {
                alert('   ,     ')
            }else{
                alert('   ,     ');
            }
        script>
     
    if入れ子文:後で時間があれば、この例を追加します.簡単に言うと、if文の中に、もう一つの完全なif文を入れ込みます.
    switch文:
    switch文は典型的な多分岐文であり、その作用は入れ子とif文を使用するのとほぼ同じですが、switch文はif文よりも可読性があります.そしてswitch文は一つの整合条件が見つからない場合にデフォルトの文セットを実行することができます.switch文の言語フォーマットは以下の通りです.
    switch(expression){ 
                 case judgement 1:
                          statement 1;
                          break;
                 case judgement2:
                        statement2;
                        break;
                 case judgement 3:
                        statement 3;
                       break;
                ....
                case judgement n:
                        statement n;
                        break;
                default:
                        statement n+1;
                        break;               
    }                                        
        
    
        
    expression:任意の表現または変数
    judgement:任意の定数表式.expressionの値があるjudgementの値と等しい場合、このcaseの後のstatement文を実行します.待たなければ、defaultの後などのstatement文を実行します.
    break:switch文を終了するために、JavaScriptはマッチングの分岐のみを実行します.  break文がない場合は、このswitch文のすべての分岐が実行されます.switch文はつまり使う意味がなくなります.
     
    私のswitch文を使って、今は何曜日ですか?
    プログラムリスト:
  • var now=new Date();var day=now.getDay();var weekswitch(day){case 1:week=“月曜日”;break;case 2:week=“火曜日”;break;case 3:week=“水曜日”;break;case 4:week=“木曜日”;break;case 5:week=“金曜日”;break;case 6=“case”script>
  • 循環制御文:
    循環文とは、条件を満たしたまま、ある動作を繰り返し実行することです.  循環制御文は主にwhile、do…whileとforを含みます.
  • while文
  • do…while文
  • forサイクル
  • while文は循環動作を実現することができます.while循環文は前テスト循環文とも呼ばれます.条件を利用してこの文を繰り返し実行するかどうかを制御します.  while循環語句はfor循環語句に比べて文法でも実行の流れでも分かりやすいです.while循環語句の文法形式は以下の通りです.
    while(expression){
          statement
    }
    パラメータの説明:
    expression:比較演算子を含む条件式
    statement:循環体を指定し、循環条件の結果がtrueの場合は繰り返し実行します.
    知っていますか
    while循環文が前試験サイクルと名付けられたのは、このサイクルの条件が成立しているかどうかを判断し、繰り返し実行される動作、つまりwhile循環文が実行する過程は条件式を先に判断し、条件式が成立している値がtrueであれば循環体を実行し、循環体が終了したら次のサイクルに入ります.ループを終了します
    説明:
    whileループステートメントを使う時も、必ずサイクルが正常に終わることを保証します.すなわち、式の値がfasleにあることを保証しなければならない場合、そうでなければ私のサイクルになります.  例えば、以下の循環文はデッドサイクルを引き起こします.理由はiは永遠に100以下です.
    プログラムリスト:
    var i = 1;
    while(i<100){
      alert(i); //输出i的值
    }

    whileサイクルは循環回数が不確定な場合によく使われます.
     
    while循環文を通じて、ページに積算と10以上の自然数を列挙することができます.
    プログラムリスト:
    <script type="text/javascript">
        var i = 1;
        var sum = i;
        var result = '';
        document.write('累加和不大于10的所有自然数为:
    '); while(sum<10){ sum = sum + i; document.write(i+'
    '); i++; } script>
    ド…while文:
    ド…while循環文は後テスト循環文とも言われています.これも条件を利用してこの文を繰り返し実行するかどうかを制御しています.whileループとは違って、do.whileが先に循環文を実行してから、アンセグメントが実行しますか?
    文法の書式は以下の通りです
    do{
             statement
    }while(expression);
        
    ド…whileサイクルは、とにかく一回実行されて、その後、サイクル条件の結果がtrueである場合、繰り返し実行されます.
    forループ:
    forサイクルはカウントダウンステートメントとも呼ばれ、一般的にサイクル数が既知の場合に使用されます.
    文法の書式は以下の通りです
    for(initialize;test;increment){
                  statement
    }    
    パラメータの説明:
    initialize:初期化ステートメントは、変数の循環を初期化するために使用されます.
    text:循環条件、比較演算子を含む表式で、循環変数の境界を定義します.  循環変数がこの辺限を超えたら、この循環文の実行を停止します.
    increment:循環変数の歩幅を指定します.
    statement:循環体を指定し、循環条件の結果がtrueの場合は繰り返し実行します.
    知っていますか
    for循環文で実行するプロセスは、初期化文を先に実行し、循環条件を判断し、もし循環条件の結果がtrueであれば、循環を実行します.そうでなければ、直接ループを終了し、最後に反復文を実行し、循環変数の値を変更して、これでループを完成します.次に次のサイクルを行います.循環条件の結果がfalseであることを知ってからサイクルを終了します.
    100以内の各奇数の和を計算します.
    プログラムリスト:
    <script type="text/javascript">
        var sum = 0;
        for (var i = 1; i < 100; i+=2) {
            sum+=i
        }
        document.write('100以内所有奇数的和为'+sum);
    script>
    許容結果:
    100以内所有奇数的和为2500
     
     
    ジャンプ文:
  • contingue文
  • break文
  • contine文:
    continue文はbreak文と似ていますが、break文は循環を終了します.continue文はこのサイクルを中止して次のサイクルを開始します.
    注意:continue文はwhile、for、do…while文にのみ適用されます.
    forループでcontinue文で計算した金額が1000以上のデータとコードは以下の通りです.
    <script type="text/javascript">
        var total = 0;
        var sum = new Array(1000,1200,100,600,736,1107,1205);
        for (var i = 0; i < sum.length; i++) {
                if (sum[i]<1000) continue;
                total+=sum[i];
            }    
            document.write('累加和为'+total);
    script>
    実行結果:
    累加和为4512
    continue文を使ってこのサイクルを中止した後、サイクル条件の結果がfalseであれば、ループを終了します.そうでなければ、次のサイクルを続けます.
    break文:
     
    break文は、最も内側のループを含むために使用されます.または、switch文を終了します. 
    break文はfor、while、do…whileまたはswitch文に使われます.
    for文では、break文でループを中断するコードは以下の通りです.
    <script type="text/javascript">
        var sum = 0;
        for (var i = 0; i < 100; i++) {
                sum += i;
                if (sum > 10) break;     //如果sum大于10就会立刻跳出循环
        }
        document.write('0至'+i+'(包括'+i+')之间的自然数的累加和为:'+sum);
    script>
    <script type="text/javascript">
        var sum = 0;
        for (var i = 0; i < 100; i++) {
                sum += i;
                if (sum > 10) break;     //如果sum大于10就会立刻跳出循环
        }
        document.write('0至'+i+'(包括'+i+')之间的自然数的累加和为:'+sum);
    script>
    実行結果:
    0至5(包括5)之间的自然数的累加和为:15
     
     
    -----------------------------------
    ここまでJavaScriptコントロールの流れはここまでです.今は2020年8月7日夜23時46分です.この前の二日間はまた更新していません.私の家の中では大雨が降っています.私が生まれた以来最大の雨です.持続時間も一番長いです.他に細かいことがなければ、もっと続けて寝たいです.
     
    ===もう一つ、最後のbreakには一例があります.ページにはある年の元旦からの日数が表示されます.明日の朝にまた起きて更新しましょう.とても眠いです.
    次の大章「JavaScript関数」を見に来てください.