4.1 if語句
如果……否則…… , 讓程序出現分支
1 <script type="text/javascript"> 2 var a = 8; 3 if(a >= 60){ 4 alert("及格了"); 5 }else{ 6 alert("不及格"); 7 } 8 </script> |
語法:
1 if(測試表達式){ 2 測試表達式為真執行的語句 3 }else{ 4 測試表達式為假執行的語句 5 } |
if英語里面的如果的意思,else就是否則的意思。else不要拼寫為eles。
在語法層面有兩個特例:
① 可以沒有else部分
1 var a = 1; 2 if(a >= 60){ 3 alert("及格了"); 4 } |
② 如果要執行的語句,只有一行語句,那么就是單行if,就可以省略大括號。
1 var a = 112; 2 if(a >= 60) 3 alert("及格了"); 4 else 5 alert("不及格"); |
// 最基本的if語句 // var a = 8; // if(a >= 60){ // alert("及格了"); // }else{ // alert("不及格"); // } // 可以省略else部分 // var a = 1; // if(a >= 60){ // alert("及格了"); // } // 如果結構體中只有單行語句,那么可以省略大括號 // var a = 112; // if(a >= 60) // alert("及格了"); // else // alert("不及格"); // 搞清楚哪些語句在結構體中,哪些不在 var a = 77; if(a > 30){ console.log("哈哈"); console.log("嘻嘻"); console.log("呵呵"); }else{ console.log("納尼"); console.log("呸呸") } console.log("么么噠"); //一定執行,因為在if結構體外面。
注意if語句是一個結構體,注意哪些語句是在結構體中,哪些語句不是結構體:
1 var a = 355; 2 if(a > 30){ 3 console.log("哈哈"); 4 console.log("嘻嘻"); 5 console.log("呵呵"); 6 }else{ 7 console.log("納尼"); 8 console.log("呸呸") 9 } 10 console.log("么么噠"); /*一定會執行,在if結構體外面*/ |
如果a是3,不滿足條件:
小練習:用戶輸入一個年齡,判斷用戶能不能考取駕照。交規說: 大於等於18,小於等於70才能考取駕照。
1 //讓用戶輸入年齡 2 var age = parseInt(prompt("請輸入年齡")); 3 //判斷 4 if(age >= 18 && age <= 70){ 5 alert("可以考取駕照"); 6 }else{ 7 alert("年齡不符合要求"); 8 } 9 alert("謝謝惠顧"); |
//讓用戶輸入年齡 var age = parseInt(prompt("請輸入年齡")); //判斷 if(age >= 18 && age <= 70){ alert("可以考取駕照"); }else{ alert("年齡不符合要求"); } alert("謝謝惠顧");
多分支的if
if……else if …… else if…… else if…… else ……
如果……否則如果……否則如果……否則如果……否則……
跳樓現象,用戶會選擇一個分支執行(跳樓),選擇這個分支了,就暗含了上一個分支沒有滿足:
1 var score = 76; 2 3 if(score >= 85){ 4 alert("優秀"); //不滿足條件,所以不執行,走樓梯下樓 5 }else if(score >= 70){ 6 alert("良好"); //走到這個樓層的,一定暗含小於85。這一樓層滿足,跳樓了 7 }else if(score >= 60){ 8 alert("及格"); //不執行 9 }else{ 10 alert("不及格") //不執行 11 } |
語法:
1 if(測試表達式1){ 2 測試表達式1為真的時候做的事情 3 }else if(測試表達式2){ 4 測試表達式1為假,且測試表達式2為真的時候做的事情 5 }else if(測試表達式3){ 6 測試表達式1為假,測試表達式2為假,且測試表達式3為真的時候做的事情 7 } 8 …… |
// var score = 66; // if(score >= 85){ // alert("優秀"); // }else if(score >= 70){ // alert("良好"); // }else if(score >= 60){ // alert("及格"); // }else{ // alert("不及格") // } //錯誤的寫法! // var score = 100; // if(score >= 0){ // alert("不及格"); // }else if(score >= 60){ // alert("及格"); // }else if(score >= 75){ // alert("良好"); // }else(score >= 85){ // alert("優秀"); // } // var score = 100; // if(score <= 60){ // alert("不及格"); // }else if(score <= 75){ // alert("及格"); // }else if(score <= 85){ // alert("良好"); // }else{ // alert("優秀"); // } //語句且"僅"會選擇一條路走。 var a = 6; if(a < 8){ a = a + 3; //a<8條件滿足,所以執行,跳樓! }else if(a == 9){ a = a + 4; //不執行 }else if(a == 13){ a = a + 5; //不執行 }else if(a == 18){ a = a + 6; //不執行 } console.log(a); //9
if語句的嵌套:
用戶先輸入自己的性別,比如男、女。然后輸入自己的年齡。判斷能否結婚。
男的22以上
女的20以上
if語句可以嵌套,如果里面再套一層如果:
1 //判斷 2 if(sex == "男"){ 3 //男 4 if(age >= 22){ 5 alert("男同志你好,可以結婚"); 6 }else{ 7 alert("你還是個小正太,不能結婚!"); 8 } 9 }else{ 10 //女 11 if(age >= 20){ 12 alert("女同志你好,可以結婚"); 13 }else{ 14 alert("你還是個小蘿莉,不能結婚!"); 15 } 16 } |
樓層中else只能有一個。 else if可以有多個。
//用戶先輸入自己的性別,比如男、女。然后輸入自己的年齡。判斷能否結婚 //先輸入性別 var sex = prompt("請輸入性別","男"); var age = parseInt(prompt("請輸入年齡")); // //判斷 if(sex == "男"){ //男 if(age >= 22){ alert("男同志你好,可以結婚"); }else{ alert("你還是個小正太,不能結婚!"); } }else if(sex == "女"){ //女 if(age >= 20){ alert("女同志你好,可以結婚"); }else{ alert("你還是個小蘿莉,不能結婚!"); } }else{ alert("你輸入的不是正確的性別!!"); } //方法2: // if(sex == "男" && age >= 22){ // alert("男同志你好,可以結婚"); // }else if(sex == "男" && age < 22){ // alert("你還是個小正太,不能結婚!"); // }else if(sex == "女" && age >= 20){ // alert("女同志你好,可以結婚"); // }else if(sex == "女" && age < 20){ // alert("你還是個小蘿莉,不能結婚!"); // }