JS中的條件判斷語句


什么叫做語句?

語句:可以理解為語言中一句一句完整的話,程序是由一條條語句構成的,語句是按照自上往下的順序執行的。

在JavaScript可以使用{  }來為語句進行分組。同一{  }中的語句稱為一組語句,他們要么都執行要么都不執行;

一個{  }中的語句也稱之為代碼塊,代碼塊后面不需要添加分號(;)。

JS中的代碼塊只有分組的作用沒有其他的作用。代碼塊中內部的內容再外部同樣可以使用。

流程控制語句

JavaScript中的語句是從上到下一層一層執行的

通過流程控制語句可以控制程序執行的流程,使程序可以根據一定的條件來選擇執行。

語句的分類:

1、條件判斷語句

2、條件分支語句

  3、循環語句

條件判斷語句

使用條件判斷語句可以在執行某個語句之前進行判斷,如果條件成立才會執行語句,如果條件不成立則語句不執行。

條件控制語句包括:1、if 語句 和 2、switch-case 語句

 

一、if語句

if 語句,條件位置處,必須Boolean的值 / 表達式 / 變量,如果不是Boolean類型的話,JS會自動進行轉換

例如這些   if(0 /0.0 / null / undefined / NaN){ }   這些 if 都會認為是false。因為0/0.0/null/undefined/NaN 這些值轉換為布爾值都是 false, 除此以外一律為真。

if語句塊的 { } ,是可以被省略的,如果省略 { } ,那么if只控制它下面的第一條語句

(一)if 語句

if條件表達式){ //執行語句
}

if 語句

規則:if語句在執行時會先對條件表達式進行求值判斷;

  • 如果條件表達式為true,則執行if后的語句;
  • 如果條件表達式為false,則不會執行if后的語句;

實例:

1、條件表達式值為true,則繼續執行后面的語句

 

if(true) alert('輸出');

 

 注意不使用{}時,if 語句只能控制緊隨其后的那個語句

實例:

var a=11; if(a<10) alert("如果a<10則輸出"); alert("雨女無瓜");

如果希望if語句可以控制多個語句,可以將語句分組,統一放在代碼塊中

var a=11; if(a>10) { document.write("如果a>10則輸出"); alert("雨女無瓜"); }

注意: if語句后的代碼塊不是必須的,但在代碼開發的時候盡量寫上代碼塊,哪怕只有一行語句

 

(二)if…else結構

if (條件表達式) { 執行語句… } else{ 執行語句… }

 if…else…語句:(復雜if結構  或  多重if結構)

規則:當使用if…else語句的時候,會先對if后的條件表達式進行求值判斷。

  • 如果條件表達式為true,則執行if后的語句;
  • 如果條件表達式為false,則執行else后的語句;
  • if里面的執行語句和else后面的執行語句,最終只能有一個被執行

實例:

var age=70
    if(age<60){ alert("還不到退休的年齡~") }else{ alert("已經退休了~") }

 

(三)if …else if…else 多分支語句

if(條件表達式){ 語法… }else if(條件表達式){ 語句… }else if(條件表達式){ 語句… }else{ 語句… }

 if…else if…else語句

規則:當該語句執行時,會從上到下對條件表達式進行求值判斷

  • 如果值為true,則執行當前語句
  • 如果值為false,則繼續向下判斷
  • 如果所有條件都不滿足,則執行else后面的語句

在該語句中只有一個代碼塊會被執行,一旦代碼塊執行了,則直接結束語句。

實例:

var week=4; if(week>5) { alert("到周末了,放假了~") } else if(week>3){ alert("這周快過去了") }else if(week=1){ alert("黑色星期一") }else{ alert("隨便什么日子~") }

 注意:語句是從上到下進行運算檢查的,如果符合了一個表達式的條件,就會執行其后面的代碼,不會再繼續向下執行。

所以要注意語句編寫的順序。

var age=40; if(age>17) { alert("成年了") } else if(age>30){ alert("人到中年") }else if(age<18){ alert("未成年") }else{ alert("年紀不小了") }


 

if語句 代碼練習:

例一:

從鍵盤輸入小明的成績:

當成績為100時,輸出“獎勵一筆記本”

當成績為[80~90]時,輸出“獎勵一部手機”

當成績為[60~80]時,輸出“獎勵一本試卷”

當成績小於60時,什么獎勵也沒有。

注意:在進行if條件語句書寫的時候要充分考慮可能出現的情況。

就本例而言,滿分為100分,所以輸入大於100或小於0,又或是非數字的值都是不符合要求的。

方法:

使用prompt( ) 函數,可以彈出提示框,該提示框中會有一個文本框。

用戶可以在文本框中輸入一段內容,該函數需要字符串作為一段參數,該字符串將會作為提示框的提示文字出現。

用戶出現的內容會作為函數的返回值出現,可以定義一個變量來接收該內容。

代碼:

var score=prompt("請輸入成績"); if(score > 100 || score < 0 || isNaN(score)){ alert("請輸入0~100之間的數字~") } else{ if(score=100) { alert("獎勵一筆記本") } else if(score>80 && score<99){ //或是else if(score>=80);
                alert("獎勵一部手機") }else if(score<80 && score>60){ alert("獎勵一本試卷") }else{ alert("什么獎勵也沒有") }}

 

例二:

某公司招聘,提出了如下要求:

年齡30歲以下,有工作經驗兩年以上,成績大於500

如果三個條件都滿足:聘用

如果三個條件中有為真的情況:現在急需用人,先用着不合適就辭退;

如果三個條件都不符合:不行,不能聘用

        var age=prompt("請輸入年齡"); var exper=prompt("請輸入工作時間"); var univ=prompt("請輸入成績"); // alert(age +","+ exper +","+ univ);
        if(age < 30 && exper > 2 && univ > 500 ){ alert("馬上聘用") }else if(age < 30 || exper >2 || univ > 500 ){ alert("會考慮一下") }else{ alert("不予考慮,不行") }

  實例三:

判斷閏年

算法:閏年(四年一閏,百年不閏,四百年再閏)

彈出prompt 輸入框,讓用戶輸入年份,然后將這個值取過來保存在變量中

使用if語句判斷是否是閏年,如果是閏年,就執行 if 后面的執行語句,否則就執行else后面的語句

var year = prompt('請輸入年份');
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
    alert(year + '年是閏年');
}else {
    alert(year + '年不是閏年');
}

 

 

 

 二、switch-case語句

switch 語句也是多分支語句,它用於基於不同的條件來執行不同的代碼。當要針對變量設置一系列的特定值的選項時,就可以使用switch

switch-case語句是一種特殊的分支結構,可以根據表達式的不同取值,從不同的程序入口開始執行。

語法:

switch(條件表達式){ case 表達式 : 語句… 語句… break; case 表達式 : 語句… break; default : 語句… break; }

 

執行流程:

switch…case…語句

執行時會將 case 后表達式的值與 switch條件表達式 的值進行全等(==)比較

  • 如果比較結果為true,則從當前case處開始執行代碼。當前case后的所有代碼都會被執行。可以在case代碼后跟着break關鍵字,這樣可以確保只執行當前case后的語句,而不會執行其他case。
  • 如果比較結果為false,則繼續向下比較
  • 如果所有比較結果都為false,則只執行default后的語句

switch語句中的每一種情況(case)的含義是:“如果表達式等於這個值(value),則執行后面的語句(statement)”;

break關鍵字  會導致代碼執行流跳出switch語句。如果省略break關鍵字,就會導致執行完當前case后,繼續執行下一個case

default關鍵字  則用於在表達式不匹配前面任何一種情形時,執行機動代碼(因此,也相當於一個else語句)

 

switch語句和if語句異同點:

switch語句和if語句實際上是有重復的,使用switch可以實行if的功能,使用if也可以實現switch的功能,具體選擇哪種方法,可以根據自己的習慣選擇。

switch-case語句 常常和break語句結合使用實現分支的功能;

switch-case在實現分支功能時和if-else的主要區別:

  • if…else…可以判定相等或不等的情形,適用性更廣;
  • switch-case結構的結構更清晰、效率更高;但是一般只用指定變量相等於某個范圍內的某個特定值才去使用

 

實例:(根據num的值來輸出對應的英文)

var num=1;
      switch(num){
            case 1:
            console.log("one");
}

 

 注意:如果比較結果為true,就從當前case處開始執行代碼。從當前case處執行代碼意味着不僅僅是case后面緊跟着的這條語句,還有case后面所有的語句都進行輸出。(num為2,case 2表達式與其全等,所以case 2后面的所有代碼都運行)

var num=2;
    switch(num){
        case 1:
        console.log("one");
                case 2:
                console.log("two");
                case 3:
                console.log("three");
            }

輸出結果:

 注意:執行break可以退出switch語句,截斷了case代碼,只輸出case 2后面的語句。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM