04.JS邏輯結構

前言:
  學習一門編程語言的基本步驟
(01)瞭解背景知識
(02)搭建開發環境
(03)語法規範
(04)常量和變量
(05)數據類型
(06)數據類型轉換
(07)運算符
(08)邏輯結構
8.邏輯結構——logic
   程序=數據+算法
   程序分爲順序執行,選擇執行,循環執行
   (1)流程控制—選擇執行
      1)if語句 結果爲真的時候
          if(條件表達式){
          語句1;
          }
          語句2;
          注意:if後的大括號中若是隻有一行語句,則能夠省略大括號.算法

    //if語句
    //若是滿30就減15
    var total=32;
    if(total>=30){//若是total金額大於等於30
    total-=15;//在原來基礎上減15
    }
    console.log(total);//17

    //練習:聲明一個變量保存年齡,若是滿18,打印成年人
    var age=19;
    if (age>=18)
    {console.log('成年人');
    console.log('能夠去網吧');
    }

    var age=19;
    if (age>=18)
    console.log('成年人');//只有一行語句,的時候能夠省略{},也能夠寫一行

    //練習:若是簽名內容爲空,設置默認簽名
    //聲明變量保存簽名內容,若是簽名爲空,設置默認簽名‘這傢伙很懶什麼也沒留下’,打印簽名內容
    var page='好熱啊';
    //if (page==='')//判斷是否爲空。
    if (!page)
    // !''->!false -> true
    {page='這傢伙很懶,什麼也沒留下';
    }
    console.log(page);//好熱啊

          在條件表達式中,有一些值默認表明false
          數值型的false的狀況:0,NaN,
          字符串型的false的狀況:'',空字符
          未定義的false的狀況:undefined
          空的false的狀況:null編程

    if (0)
    { console.log('hello');
    }//不打印

    if (1)
    { console.log('hello');
    }//打印hello

   2)if-else語句 若是前面是假就執行後面的條件表達式
        if(條件表達式){
        語句1;
        }else{
        語句2;
        }瀏覽器

    //if-else語句
    //聲明變量保存性別,0/1,若是是0打印女,不然打印男
    var sex=0;
    if (sex===0){
    console.log('女');
    }else{
    console.log('男');
    }

    //練習:聲明變量分別保存用戶名和密碼,若是用戶名是root,而且密碼是123456,打印登陸成功,不然打印登陸失敗
    var uname='rojot';
    var upwd='123456';
    if (uname==='root' && upwd==='123456'){
    console.log('登陸成功');
    }else{
    console.log('登陸失敗');
    }

   3)if-else 嵌套,解決多項分支選擇
        if (條件表達式1){
        語句1;
        }else ...if(條件表達式n){
        語句n;
        } else{
        語句n+1;//以上的條件表達式都是false,就執行該語句
        }編程語言

    //if-else 嵌套
    //聲明變量保存一我的的成績,根據成績打印對應的漢字
    var score=56;
    if (score>=90){
    console.log('優秀');
    }else if(score>=80 && score<90 ){
    console.log('良好');
    }else if(score>=70 && score<80 ){
    console.log('中等 ');
    }else if(score>=60 && score<70 ){
    console.log('及格');
    }else{
    console.log('不及格');
    }

   4)switch-case   是一種特殊的多項分支語句,只有一種比較方式,就是全等於===
        switch-case ——轉換器-狀況
        break             ——結束打破
        switch(表達式){//一般是一個變量
        case 值1 ://若是表達式的值是 值1,
        語句1;
        break;//結束後面的語句
        ...
        default:
        語句n+1;//若是表達式的值和case中的值比較都是false,纔會執行n+1
        }
        注意:表達式在和case後的值比較的時候,使用的是全等於,要求值和類型都相同。函數

    //switch-case語句
    //根據星期的狀態碼,來打印對應的漢字0-6
    var date=0;
    switch (date)
    {
    case 0:
    console.log('星期日');
    break;
    case 1:
    console.log('星期一');
    break;
    case 2:
        console.log('星期二');
    break;
    case 3:
        console.log('星期三');
    break;
    case 4:
        console.log('星期四');
    break;
    case 5:
        console.log('星期五');
    break;
    case 6:
        console.log('星期六');
    break;
    default:
    console.log('錯誤的星期代碼');
    }

        總結1:對比 if-else嵌套和switch-case的區別
                  相同點:二者均可以用於多項分支語句
                  不一樣點:if-else能夠判斷相等或是不等的狀況。使用 範圍更普遍;
                              switch-case只能用於全等於的比較,結構上給爲清晰合理,可讀性高,執行效率更高學習

   (2)流程控制——循環執行
      循環:一遍又一遍執行相同或是類似的代碼。
      循環的兩個要素:
      循環條件:控制執行循環的次數,
      循環體:重複執行的相同或是類似的代碼
      1)while循環
          while(循環條件){
          循環體
          }//當循環條件爲true的時候,循環體運行中,循環條件是false的時候,循環結束spa

    //while循環
    //循環產生10-20之間全部的數字,並打印出來
    var num=10;
    while (num<=20){//循環條件
    console.log(num);
    num++;//循環體
    }
    //練習:計算1-100之間全部偶數和
    var i=1;//聲明變量i
    var sum=0;//聲明變量sum
    while (i<=100){//循環條件,若是I小於等於100
        if(i%2===0){//計算爲偶數的條件,
        sum+=i;     //sum等於sum加i
       }
    i++;//自增
    }
    console.log(sum);//2550

      2)break打破循環
          在循環中,能夠提早結束任何形式的循環
          isNaN()判斷一個值是否爲NaN 是—>TRUE 不是—>falsecode

    //break打破循環
    //打印數字1-10
    var i=1;
    while (true){//不停+1,沒有結束
       console.log(i);//每循環+1一次就打印一次數字
       if (i===10){//當i爲10的時候
       break;//結束循環
       }
       i++;//循環+1
    }//輸出結果爲1-10每一個數字都打印一遍
    // 在這裏須要注意console.log(i)和 i++;的位置,位置不同,輸出的效果不同,咱們這裏的需求是打印數字1-10

    /*————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————*/

    //下面須要用到瀏覽器端函數,簡單解釋一下
    //alert()  彈出警示(消息)框
    //prompt() 彈出提示(輸入)框,須要使用變量來保存輸入的值,默認類型是字符串類型,若是輸入框中內容爲空,返回空字符(''),若是點擊取消返回null、

    //練習:聲明一個變量保存一個數字。無限循環彈出提示框,並輸入數字,若是輸入的數字大於保存的數字,彈出警示框提示 ‘big’,
    //若是輸入的數字小於保存的數字,彈出警示框提示‘small’,不然彈出警示框提示‘right’,結束循環。
    var num=102;
    while(true){
        //彈出提示框
        var  str=prompt('input a number');
        //若是輸入大於以前的值
        if (num<str){
        alert("big");
        //若是輸入的值小於以前的數字
        }else if (num>str){
        alert("small");
        }else{
            //判斷是否爲數字,若是不是,提示
            var str2=Number(str);
            //isNaN,是不是NaN  ——>true
            if (isNaN(str2)){
            alert('input a number');
            }else{
            //猜對
            alert("right");
            break;
            }//注意這裏空字符轉數值爲0
        }
    }

      3)do-while循環 先執行一遍循環體,在判斷循環條件,即便循環條件爲false,也會在執行一遍循環體。
           do{
           循環體
           }while(循環條件);blog

        //do—while循環
        //循環產生1-10之間全部的整數
        var i=1;
        do{
        console.log(i);
        i++;
        }
        while (i<=10);

        /*———————————————————————————————————————————————————————————————— */

        //練習:聲明變量保存123456,循環彈出提示框輸入密碼,若是輸入正確結束循環。
        var upwd="123456";
        do{
        //保存輸入的密碼
        var str=prompt('input password');
        //判斷輸入的密碼是否正確
        if (str===upwd){//若是正確
           break;//結束循環
           }
        }
        while (true);//循環條件。


        //其餘寫法
        var upwd="123456";
        do{
        //保存輸入的密碼
        var str=prompt('input password');
        }
        while (str!==upwd);//若是輸入的str保存的upwd不一樣,繼續彈出窗口

      4)for循環 表達式1:初始值,表達式2:循環條件,表達式3:增量,能夠分解多種可能 多個循環條件中只有最後的一個起做用。
           for(表達式1;表達式2;表達式3){
           循環體 ;
           }開發

    //for循環
    //計算1-20之間全部能被3整除的數字的乘積
    var sum=1;//聲明變量sum
    for (var i=1;i<=20 ;i++ )//i初始值爲1,循環條件爲小於等於20,i執行自增
        {
        if (i%3===0){//若是i取餘3等於0
        sum*=i//sum等於sum乘以i
        }
    }
    console.log(sum);//打印sum

    //練習:計算1-100的和
    for (var i=1,sum=0;i<=100;i++ ){
        sum+=i
    }
    console.log(sum);
    //其餘寫法
    var i=1,sum=0;
    for ( ;i<=100;i++ ){//第一個表達式能夠不用,可是要保留位置上的;分號,表明第一個表達式爲空
        sum+=i
    }
    console.log(sum);

    //練習:打印2000-2100年之間全部的閏年
    //閏年:4年一閏,而且不能被100整除,或者能被400整除
    for (var year=2000;year<=2100;year++){
        if (year%4===0 && year%100!==0 || year%400===0){
        console.log(year);
        }
    }

      5) continue跳過特定條件繼續執行循環
           跳事後邊的循環體,繼續執行增量。

    //continue跳過
    //練習:打印1-100之間全部的整數,排除能被3整除和能被4整除的數字
    for (var i=1;i<=100 ;i++ ){//i初始值爲1,循環條件爲小於等於100,i執行自增
        if (i%3===0 || i%4===0){//若是i取餘3等於0而且i取餘4等於0
            continue;//跳過此條件繼續執行循環
        }
        console.log(i);//打印i
    }

           總結2:break和continue的區別
                      break :結束循環,後續不會再執行後續的循環
                      continue:跳事後邊的循環體,繼續執行增量,也就是下一次循環。

   (3)循環嵌套——nest
      任何的循環之間能夠相互嵌套

    //循環嵌套
    //循環打印五次五顆*
    for (var i=1,str='';i<=5 ;i++ ){
    //每次循環拼接*
        str+='*';
    }
    console.log(str);//打印結果

    //以上代碼要執行五次,把以上代碼再次放到另外一個循環中
    //外層循環表明一共有多少行
    for (var j=1; j<=5 ;j++ ){
        //內層循環,控制每行有多少星星
        for (var i=1,str='';i<=5 ;i++ ){
        //每次循環拼接*
        str+='*';
        };
    console.log(str);
    }
相關文章
相關標籤/搜索