1. 程式人生 > 其它 >JavaScript之語句,迴圈

JavaScript之語句,迴圈

JavaScript中語句主要分為三類:順序,分支,迴圈。

1.順序語句:

按照循序依次執行,最普通常見的語句,這裡不多贅述。

其結構如下

2.分支語句:

根據條件判斷,不同的結果執行不同的語句。

其大致結構如下

常用的分支語句有

if……else……和switch……case……

if語句的幾種

1.

if(判斷條件){

條件成立時執行

}

舉例:

    var i=12;
    if(i>10){
        alert("i大於10");
        }

2.

if(判斷條件){

條件成立時執行

}else{

條件不成立時執行

}

舉例:

    var i=9;
    if(i>10){
        alert("i大於10");
        }else{
            alert("i不大於10");
            }

3.

if(判斷條件){

條件成立時執行

}else  if(第二個判斷){第二個判斷成立

}else{

兩個判斷都不成立時執行

}

舉例:

    var i=9;
    if(i>10){
        alert("i大於10");
        }else if(i==10){
            alert("i等於10");
            }else{
                alert("i小於10");
                }

4.

if(第一個判斷){

  if(第二個判斷){

    兩個判斷都成立

  }else{第一個判斷成立,第二個判斷不成立

    }

}else{兩個判斷都不成立

}

舉例:

    var i=10;
    if(i>=10){
        if(i==10){
            alert("i=10");
            }else{
                alert("i>10");
                }
        }else{
            alert("i<10");
            }

switch……case……語句:

switch語句適用於分支較多的情況

switch(變數){

  case 判斷1:

    執行的語句;break;

  case 判斷2:

    執行的語句;break;

  ……

  default:

    執行語句;

}

注意:break是跳出當前{}語句

例項:

    var i=parseFloat(prompt("請輸入一個數字"));
    var k=prompt("請輸入運算子");    
    var l=parseFloat(prompt("請在輸入一個數字"));
    switch(k){
        case "+":
        alert(i+l);break;
        case "-":
        alert(i-l);break;
        case "*":
        alert(i*l);break;
        case "/":
        alert(i/l);break;
        default:
        alert("輸入有誤");
        }

這還是一個簡單的計算過程。

需要注意的是:使用者輸入的是字串,所以數字需要用parseInt(),parseFloat()轉換為整數或小數,而case中要用“”代表運算子,不能直接用case +

迴圈語句:

迴圈語句主要有for迴圈和while迴圈

fo迴圈:

for迴圈的特點是控制迴圈的次數

四要素:初始值  迴圈條件  狀態改變  迴圈體

for(初始值;迴圈條件;狀態改變){

  迴圈體;

}

 其執行過程為:

初始值-判斷條件-迴圈體-狀態改變

  -判斷條件-迴圈體-狀態改變

    -判斷條件-迴圈體-狀態改變

      ……

        判斷條件-迴圈結束

    for(i=0;i<100;i++){
        alert(i);
        }

再迴圈中有幾個需要注意的點:

break:跳出整個迴圈

    for(i=0;i<100;i++){
        alert(i);
        break;
        }

則只輸出一個0.然後結束

continue:跳出本次迴圈

    for(i=0;i<100;i++){
        if(i==5){
            continue;
            }
        alert(i);
        }

4之後跳過5,直接6

i++與++i:

var a=i++;

把i的值賦給a然後i+1

也就是:

var a=i;

i=i+1;

var b=++i;

i+1然後把i的值賦給b

i=i+1;

var b=i;

舉例:

    var i=1;//i=1
    var a=i++;//把i的值也就是1賦給a,a=1,然後i自增,i=2
    var b=++i;//i自增,i=3,把的值i賦給b,b=3
    alert("a="+a+","+"b="+b);

while迴圈:

while迴圈的特點是操作不確定迴圈次數的迴圈

while(條件,可以為true){

}

    var i=0;
    while(true){
        alert(i);
        if(i>10){
            break;
            }
            i++;
        }

上程式碼執行後,會0,1,2,3…依次彈出,直到11。

下面是幾個簡單的迴圈例子:

//求100內奇數
    var str="";
    for(var i=0;i<100;i++){
        if(i%2==1){
            str=str+i+","+"n";
            }
        }
    alert(str);

首先定義一個空的字串str,然後迴圈在i<100,中間巢狀if判斷i除以2的餘數為1,然後把字串拼接在一起,需要注意的是/n換行,上圖是沒有換行的結果

這裡需要注意一下:

轉義字元,反斜槓開頭,n  r  換行   t製表符  " 正常“”

    
//100以內和7相關的數
var str="";
    for(var i=0;i<100;i++){
        if((i%7==0)||(i%10==7)||((i-i%10)/10==7)){
            str=str+i+","+"n";
            }
        }
    alert(str);
    

輸出100以內和7相關的數,這裡需要注意的是,將幾個和7相關的判斷條件用||一起放在判斷條件中,代表任何一個成立都可以

//輸出乘法口訣表
    for(var i=1;i<10;i++){
        for(j=1;j<10;j++){
            if(i<=j){
                alert(i+"*"+j+"="+i*j); 
                }
            }
        }
        

輸出乘法口訣表,

這裡需要注意的是乘法口訣表,也就是這裡要定義兩個變數來相乘,要用兩個迴圈巢狀起來

    //籃球5米落下,每次彈起高度是原來的0.3,求彈起第6次高度
    var h=5;
    for(var i=0;i<6;i++){
        h=h*.3;
        }
    alert(h);

這裡需要注意的是,首先定義原本的高度h=5米,然後用for迴圈控制迴圈6次,每次h乘以0.3

    //一個芝麻0.000001kg,棋盤32個格子,,第一個格子1個,二個2個,三個4個,放滿需要多重的芝麻
    var sum=0;//總數
    var a=1;//每個格子數量
    for(var i=0;i<32;i++){   //i=1,迴圈31次,如果i=0,迴圈32次,如果sum為1,所以迴圈應該是31次
        sum=sum+a;        //
        a=a*2;//後一個格子等於前一個格子數量兩倍

        }
    alert(sum*.000001);

這裡尤其需要注意的是,順序,思維和語句的順序,正常來看,首先還沒有放的時候,總數sum=0,然後在迴圈中迴圈的初始值i也要為0,這樣迴圈32次,如果i=1,則只會迴圈31次,然後sum=sum+a;第一個格子的數量為1,然後a=a*2代表下一個格子的芝麻數量。

之前用的另一串程式碼

    var sum=1;//總數
    var a=1;//每個格子數量
    for(var i=1;i<32;i++){   //i=1,迴圈31次,如果i=0,迴圈32次,如果sum為1,所以迴圈應該是31次
                a=a*2;//後一個格子等於前一個格子數量兩倍
                sum=sum+a;

        }
    alert(sum*.000001);
                

在這裡,第一個格子已經放了一個芝麻,所以sum=1,因此i=1控制迴圈31次而不是32次,這樣先a乘以2在sum=a。