ろんりブランチ

6193 ワード

導入:私たちは日常生活の中で、多くのことを判断する必要があります.例えば、アパレル街に行って服を買って、あなたは1枚の服を気に入って、ボスは600元かかります.あなたはすぐに考えて、この価格が高いかどうか、判断の結果は2つの可能性しかありません.1つは高いです.2つは高くありません.例えばネットカフェに行っても、ネット管理者はあなたが18歳になったかどうかを判断しなければなりません.結果も2つしかありません.私达のコードの中で、同じく多くの判断があって、例えば私达のした练习、赤は条件を満たして、嫁ぐことができて、条件を満たさないで嫁ぐことができません.私たちは昨日ただ1つのブール値を見ることができて、次の操作を行っていません.今日の学習を通じて次の操作を行うことができます.私たちの今日の学習の主な内容は判断で、論理分岐と呼ばれています.
判断にはいろいろな種類があります.例えば、
  • 試験の成績は60より大きく、
  • に合格した.
  • 試験の成績は60より大きくて、合格して、さもなくば、不合格
  • 試験の成績が60以上80未満であれば、合格、80以上90未満であれば、良好、90以上であれば、優秀
  • 上記のいくつかの状況によって、私たちは判断を3つに分けて、結果によって1つのことしかしないのは、単分岐と呼ばれ、2つのことをしているのは、二分岐と呼ばれ、複数のことをしているのは、多分岐と呼ばれています.

    シングルブランチ


    構文:
    if(     ){
                  true         
    }

    例:
    var age;
    if(age>18){
       alert("     ");
    }

    ダブルブランチ


    構文:
    if(     ){
                  true         
    }else{
                  false            
    }

    例:
    if(age>18){
       alert("   ");
    }else{
        alert("   ");
    }

    ケース:年を入力し、閏年かどうかを判断

    マルチブランチ


    構文:
    if(     1){
              1    true   ,      
    }else if(     2){
              2    true   ,      
    }else if(     3){
              3    true   ,      
    }
    。。。
    
    }else{
    
    }
    #          else if,else            

    例:
    var score = Number(prompt("       :"));
    if(isNaN(score)){
        alert("     ");   
    }else{
        if(score>=0 && score<60){
           alert("   ");
        }else if(score>=60 && score<70){
           alert("   ");
        }else if(score>=70 && score<80){
            alert(" ");         
        }else if(score>=80 && score<90){
            alert(" ");         
        }else if(score>=90 && score<=100){
            alert(" ");         
        }else{
            alert("     ");
        }
    }

    ブランチ構造の簡略化


    シングルブランチまたはダブルブランチおよびマルチブランチの括弧に1行のコードしかない場合は、括弧は省略できます.
    例:
    //       
    var age;
    if(age>18)
       alert("     ");
    //       
    if(age>18)
       alert("   ");
    else
        alert("   ");
    //       
    var score = Number(prompt("       :"));
    var score = Number(prompt("       :"));
    if(isNaN(score))
        alert("     ");   
    else{
        if(score>=0 && score<60)
           alert("   ");
        else if(score>=60 && score<70)
           alert("   ");
        else if(score>=70 && score<80)
            alert(" ");         
        else if(score>=80 && score<90)
            alert(" ");         
        else if(score>=90 && score<=100)
            alert(" ");         
        else
            alert("     ");
    }

    ブランチ構造のネスト


    例:3つの変数を定義し、3つの値の最大値を求める.
    var a,b,c;
    if(a>b){
        if(a>c){
           alert("  a  ");
        }else{
            alert("  c  ");
        }
    }else{
        if(b>c){
           alert("  b  ");
        }else{
            alert("  c  ");
        }
    }

    switch多重判定


    構文:
    switch(  ){
        case  1:
                  
        break;
        case  2:
                  
        break;
        。。。
        default:
                 
    }

    使用方法:
  • breakは、現在のブランチが実行するとswitchの実行が終了し、後続コードが
  • を実行しないことを示す.
  • defaultは、判断文のelse
  • と理解できる.
  • caseはifと理解してこの変数がすべてある値
  • に等しいかどうかを判断する.
    例:
    var day = Number(prompt("     0~7    :"));
    if(isNaN(day) || day<=0 || day>7){
        alert("    ");
    }else{
        switch(day){
            case 1:
                alert("     ");
            break;
            case 2:
                alert("     ");
            break;
            case 3:
                alert("     ");
            break;
            case 4:
                alert("     ");
            break;
            case 5:
                alert("     ");
            break;
            default:
                alert("    ");
        }
    }

    注意:多重判定を使用する場合、switchで判断できるようにするには、できるだけswitchを使用します.switchの判定はいずれも確定した値であり、条件が簡単なので効率が高いです.
    シーンを使用:
  • 判断の条件が複雑であればif
  • を用いる.
  • 条件は決定された値で、2つの状況に分けられます.
  • 判断の分岐が3個以下であればifを用い,このときの効率はswitchと同様
  • である.
  • が3個より大きい場合はswitchを使用します.

  • switchは、使用するものがすべて(==)
  • であると判断する.

    switch貫通表記


    caseの後ろにbreakが書かれていない場合、現在のcaseが実行されると、後のcaseのコードが実行されます.
    出力1~5:
    var day;
    switch(day){
        case 1:
            alert("     ");
        break;
        case 2:
            alert("     ");
        break;
        case 3:
            alert("     ");
        case 4:
            alert("     ");
        break;
        case 5:
            alert("     ");
        break;
        default:
            alert("    ");
    }

    dayの値が2の場合、後のコードは実行されず、dayの値が3の場合、3のコードを実行し終わると、3のコードの後ろにbreakがないため、4のコードも実行されます.
    この場合、switchのこの特性を利用して、いくつかのコードを簡単に書くことができます.
    月を入力して、今月何日あるか判断して出力しますか?
    var month = Number("       :");
    if(isNaN(month) || month<=0 || month>12){
        alert("    ");
    }else{
        switch(day){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                alert("    31 ");
            break;
            case 4:
            case 6:
            case 9:
            case 11:
                alert("    30 ");
            break;
            case 2:
                alert("    29  28 ");
            break;
            default:
                alert("    ");
        }
    }

    if条件の詳細


    if条件の結果はブール値なので、ブール値を条件としてifの括弧に入れることができます
    例:
    if(true){
       alert("  ");
    }else{
        alert("  ");
    }

    他の非ブール値の式またはデータを条件カッコに入れると、ステルスなタイプ変換が発生します.
    例:
    if(2){ //    2        
        console.log(2);
    }

    さんげんえんざん


    if二重ブランチには簡単な書き方があります.
      ?           :            ;

    例:
    a>b?console.log(a):console.log(b);

    この二重分岐を表す方式を三元演算といい、三元表現とも呼ばれる.
    三元演算には、式全体を1つの値として、変数に値を割り当てることも、出力することもできます.
    例:
    var max = a>b?a:b; //  a b          max
    console.log(a>b?a:b); //  a b