1. 程式人生 > >第六章:JavaScript(第二話)

第六章:JavaScript(第二話)

文章目錄

第一節:選擇與迴圈

條件判斷語句

1、if 語句

【if單分支結構】
在這裡插入圖片描述
【if雙分支結構】
當if括號內的表示式結果成立,執行執行語句1,否則執行執行語句2
在這裡插入圖片描述
【if多分支結構】
從上往下,滿足哪個條件就執行其相對應的語句,都不滿足時,執行最後的else的語句,只能進入其中之一
在這裡插入圖片描述

案例:猜數字遊戲

例:

<!DOCTYPE html>
<html>
   <head>
      <meta charset
="utf-8">
<title>猜數字遊戲</title> </head> <body> <h1>猜數字遊戲</h1> <p>現在已生成一個1-100的數字,猜猜吧!猜中有獎</p> <input type="number" id="num"> <button id="btn">確定</button> <script type="text/javascript"> //DOM節點操作:獲取頁面元素 var num = document.getElementById('num'); var btn = document.getElementById('btn'); //使用隨機函式,獲取隨機數字(0-1之間的數) var number = parseInt(Math.random()*100+1); //得到1-100之間的數 //繫結滑鼠點選事件(元素.事件名 = 事件處理函式) btn.onclick = function(){ //var mynum = number(num.value); //獲取輸入的值(字串),並轉為數字型別 var mynum = num.value*1; //進行算術運算也能轉數字型別 //進行邏輯判斷 if(mynum > number){ alert('你輸的數大了!'); }else if(mynum < number){ alert('你輸的數小了!'); }else{ alert('恭喜,猜中了!'); } } </script> </body> </html>

瀏覽器結果:
在這裡插入圖片描述

2、三元運算

格式:條件 ? 條件成立執行的程式碼 : 條件不成立執行的程式碼

例:

<script type="text/javascript">
	var a = 20;
	var b = 50;
	//三元運算,判斷a是否大於b,是就執行a-b,不是執行a+b
	var c = a>b ? a-b : a+b;
	console.log(c);
</script>

控制檯結果:
在這裡插入圖片描述

3、switch語句

switch語句在比較值時使用的是全等操作符,因此不會發生型別轉換
case —— 當符合條件時,會從符合條件的那一條case語句開始,依次順序向下執行(case穿透)
break —— 跳出switch語句(必須加,否則case穿透)
default —— 當所有的case都不滿足的情況下會執行defalut下面的語句
【結構】
在這裡插入圖片描述

案例:計算兩個文字框的值
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>計算兩個文字框的值</title>
   </head>
   <body>
      <h1>計算兩個文字框的值</h1>
      <input type="number" id="num1">              <!-- 文字框1 -->
      <select id="mySelect">                       <!-- 運算子下拉選單 -->
         <option value="add">+</option>
         <option value="minu">-</option>
         <option value="mult">&times;</option>
         <option value="divi">÷</option>
         <option value="mo">%</option>
      </select>
      <input type="number" id="num2">               <!-- 文字框2 -->
      <button id="btn"> 計算 </button>              <!-- 計算按鈕 -->
    
      <div id="rest"></div>                         <!-- 計算結果 -->

      <script type="text/javascript">
         // 獲取所有元素
         var numb1 = document.getElementById('num1');
         var numb2 = document.getElementById('num2');
         var mySelect = document.getElementById('mySelect');
         var btn = document.getElementById('btn');
         var rest = document.getElementById('rest');

         //按鈕點選時方法
         btn.onclick = function(){
            // 獲取元素被輸入的值
            var Numb1 = numb1.value*1;
            var Numb2 = numb2.value*1;
            var myselect = mySelect.value;
            console.log(Numb1,myselect,Numb2);      //此處為控制檯除錯
            var res;                                //宣告一個變數但不賦值

            // 進行邏緝判斷				          				
            switch(myselect){
               case 'add':
                  res = Numb1 + Numb2;         //結果賦值給空變數res
                  break;
               case 'minu':
                  res = Numb1 - Numb2;
                  break;
               case 'mult':
                  res = Numb1 * Numb2;
                  break;
               case 'divi':
                  res = Numb1 / Numb2;
                  break;
               case 'mo':
                  res = Numb1 % Numb2;
            };
            console.log(res);                      //此處為控制檯除錯
            rest.innerHTML = "計算結果:" + res;    //把res的結果傳回瀏覽器
         }
      </script>
   </body>
</html> 

瀏覽器結果:
在這裡插入圖片描述

條件迴圈語句

迴圈就是重複做一件事, 在JS中指的是迴圈執行某部分程式碼.迴圈結構是程式中一種很重要的結構,其特點是在給定條件成立時,反覆執行某程式段,直到條件不成立為止
【注意】
只要條件成立,就會不斷地執行花括號裡的語句
編寫條件時,要避免出現死迴圈

1、while迴圈

結構

//變數初始化
while(條件){
	//條件成立就會不斷地執行這裡的程式碼,直到條件不成立
	//所以這裡一般會伴隨著條件的更新
}	

例:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>迴圈語句</title>
    </head>
    <body>
        <h1>求30以內所有奇數的和</h1>                
        <script type="text/javascript">
            // 變數初始化
            var numb = 1;                //初始值
            var total = 0;              //初始總和
            while(numb <= 30){
                // 求奇數和,對奇數進行判斷
                if(numb % 2 !=0){
                    total += numb;
                    console.log(numb + '是奇數')
                }
            // 變數更新,往條件不成立的方向改變
            numb++;
            };
            //迴圈完成後才會執行下面程式碼
            console.log('奇數總和是:' + total);
        </script>
    </body>
</html> 

控制檯結果:
在這裡插入圖片描述

2、do…while
//變數初始化
do {
    //不管條件是否成立,先執行一次這裡的程式碼,再進行條件判斷,如果條件依然成立,則再次執行這裡的程式碼,依此類推
    //所以這裡一般會伴隨著條件的更新
} while(條件)

例:do…while與while的區別

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>迴圈語句</title>
    </head>
    <body>
        <h1>do...while與while的區別</h1>                
        <script type="text/javascript">
            // 變數初始化
            var numb = 1;             //初始值
            do{
                // 不管條件是否成立,我都要執行
                console.log('我是do的內容,我被列印了');
                numb++;
            }while(numb>20)          //numb不可能大於20,但仍執行了do語句
        </script>
    </body>
</html> 

控制檯結果:
在這裡插入圖片描述

3、for迴圈

對於迴圈來說,在程式碼當中,whiledo...while其實都並不是最常用的手法,更多使用的還是for迴圈。
tips: 當知道迴圈次數時最好使用for迴圈,否則使用while更好

for(變數初始化; 條件判斷; 變數更新){                 //兩個分號必須寫
    //迴圈條件成立,則執行這裡的程式碼
}

例:求30以內所有奇數的和 (for迴圈版)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>迴圈語句</title>
    </head>
    <body>
        <h1>求30以內所有奇數的和</h1>                
        <script type="text/javascript">
            for(var numb = 1,total = 0;numb < 30;numb++){
                // 求奇數和,對奇數進行判斷 
                if(numb % 2 !=0){
                    total += numb; 
                    console.log(numb + '是奇數')
                }
            }
            //迴圈完成後才會執行下面程式碼
            console.log('奇數總和是:' + total);
        </script>
    </body>
</html> 
案例:十年後的工資

例:小王入職薪水10K,每年漲幅5%,10年後工資多少?這10年小王賺了多少錢?

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>迴圈語句</title>
    </head>
    <body>
        <h1>十年後的工資</h1>
        <p>問題:</p>
        <p>小王入職薪水10K,每年漲幅5%,10年後工資多少?</p> 
        <p>這10年小王賺了多少錢?</p>
        <button id="btn">解答</button>  
        <div id="after10"></div>             
        <div id="total10"></div>             
        <script type="text/javascript">
            //獲取元素
            var btn = document.getElementById('btn');
            //按鈕點選時方法
            btn.onclick = function(){
                var salary = 10000;
                var total = salary*12
                console.log('第一年賺了' + total +'元')
                // 進行迴圈計算
                for(var year = 2;year <= 10;year++){
                    salary += salary*0.05;
                    total += salary*12
                    console.log('第' + year + '年的工資是:' + salary.toFixed(2) + '元')
                    console.log('到第' + year + '年一共賺了:' + total.toFixed(2)  + '元')
                }
                //把十年後結果傳回瀏覽器
                after10.innerHTML = '十年的工資是:' + salary.toFixed(2) + '元'
                total10.innerHTML = '十年所賺的錢有:' + total.toFixed(2) + '元'
            }
        </script>
    </body>
</html> 

瀏覽器結果:
在這裡插入圖片描述

案例2:生成N行M列表格
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>迴圈語句</title>
        <style type="text/css">
            table{border-collapse: collapse;}
            table td{border: 1px solid #00f;padding: 5px 10px;}
            #output{margin-top: 30px;}
        </style>
    </head>
    <body>
        <h1>生成N行M列表格</h1>
        <label for="row">請輸入行數:</label>
        <input type="number" id="row"><br>

        <label for="col">請輸入列數:</label>
        <input type="number" id="col"><br>

        <button id="btn">點選生成</button>  
        <div id="output"></div>             
           
        <script type="text/javascript">
            //獲取元素
            var row = document.getElementById(