12 - if分支語句
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>12-if分支語句</title>
<!--
1. 流程控制
===========
在一個程序執行的過程中,各條代碼的執行順序對程序的結果是有直接影響的。
很多時候我們要通過控制代碼的執行順序來實現我們要完成的功能。
簡單理解: 流程控制就是來控制我們的代碼按照什麼結構順序來執行
流程控制主要有三種結構,分別是順序結構、分支結構和循環結構,這三種結構代表三種代碼執行的順序。
2. 順序流程控制
==============
順序結構是程序中最簡單、最基本的流程控制,它沒有特定的語法結構,程序會按照代碼的先後順序,依次執行,
程序中大多數的代碼都是這樣執行的。
3. 分支流程控制if語句
====================
3.1 分支結構
------------
由上到下執行代碼的過程中,根據不同的條件,執行不同的路徑代碼(執行代碼多選一的過程),從而得到不同的結果
JS語言提供了兩種分支結構語句
if 語句
switch 語句
3.2 if語句
----------
1. 語法結構
***********
if (條件表達式) {
}
語句可以理解爲一個行爲,循環語句和分支語句就是典型的語句。一個程序由很多個語句組成,一般情況下,會分
割成一個一個的語句。
-->
<script>
if (3 < 5) {
alert('沙漠駱駝');
}
</script>
</head>
<body>
</body>
</html>
13 - 進入網吧案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>13-進入網吧案例</title>
<!--
案例: 進入網吧
--------------
彈出一個輸入框,要求用戶輸入年齡,如果年齡大於等於 18 歲,允許進網吧。
案例分析
--------
彈出 prompt 輸入框,用戶輸入年齡, 程序把這個值取過來保存到變量中
使用 if 語句來判斷年齡,如果年齡大於18 就執行 if 大括號裏面的輸出語句
-->
<script>
var age = prompt('請輸入您的年齡:');
if (age >= 18) {
alert('您的年齡合法,歡迎來天際網吧享受學習的樂趣!');
}
</script>
</head>
<body>
</body>
</html>
14 - if else雙分支語句
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>14-if else雙分支語句</title>
<!--
3.3 if else語句(雙分支語句)
---------------------------
1. 語法結構
***********
if (條件表達式) {
} else {
}
-->
<script>
var age = prompt('請輸入您的年齡:');
if (age >= 18) {
alert('我想帶你去網吧偷耳機');
} else {
alert('滾, 回家做作業去');
}
</script>
</head>
<body>
</body>
</html>
15 - 判斷閏年案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>15-判斷閏年案例</title>
<!--
案例 2:判斷閏年
---------------
接收用戶輸入的年份,如果是閏年就彈出閏年,否則彈出是平年
案例分析
-------
算法:能被4整除且不能整除100的爲閏年(如2004年就是閏年,1901年不是閏年)或者能夠被 400 整除的就是閏年
彈出prompt 輸入框,讓用戶輸入年份,把這個值取過來保存到變量中
使用 if 語句來判斷是否是閏年,如果是閏年,就執行 if 大括號裏面的輸出語句,否則就執行 else裏面的輸出語句
一定要注意裏面的且 && 還有或者 || 的寫法,同時注意判斷整除的方法是取餘爲 0
-->
<script>
var year = prompt('請您輸入年份:');
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
alert('您輸入的年份是閏年');
} else {
alert('您輸入的年份是平年');
}
</script>
</head>
<body>
</body>
</html>
16 - if else if多分支語句
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>16-if else if多分支語句</title>
<!--
3.4 if else if語句(多分支語句)
------------------------------
1. 語法結構
***********
if (條件表達式1) {
語句1;
} else if (條件表達式2) {
語句2;
} else if (條件表達式3) {
語句3;
....
} else {
}
-->
<script>
if (條件表達式1) {
} else if (條件表達式2) {
} else if (條件表達式3) {
} else {
}
</script>
</head>
<body>
</body>
</html>
17 - 判斷成績案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>17-判斷成績案例</title>
<!--
案例: 判斷成績級別
-----------------
要求:接收用戶輸入的分數,根據分數輸出對應的等級字母 A、B、C、D、E。
其中:
1. 90分(含)以上 ,輸出:A
2. 80分(含)~ 90 分(不含),輸出:B
3. 70分(含)~ 80 分(不含),輸出:C
4. 60分(含)~ 70 分(不含),輸出:D
5. 60分(不含) 以下,輸出: E
案例分析
-------
1. 按照從大到小判斷的思路
2. 彈出prompt輸入框,讓用戶輸入分數,把這個值取過來保存到變量中
3. 使用多分支 if else if 語句來分別判斷輸出不同的值
-->
<script>
var score = prompt('請您輸入分數:');
if (score >= 90) {
alert('寶貝,你是我的驕傲');
} else if (score >= 80) {
alert('寶貝,你已經很出色了');
} else if (score >= 70) {
alert('你要繼續加油嘍');
} else if (score >= 60) {
alert('孩子,你很危險');
} else {
alert('熊孩子,我不想和你說話,我只想用鞭子和你說話');
}
</script>
</head>
<body>
</body>
</html>
18 - 三元表達式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>18-三元表達式</title>
<!--
三元表達式也能做一些簡單的條件選擇。 有三元運算符組成的式子稱爲三元表達式
1. 語法結構
表達式1 ? 表達式2 : 表達式3;
2. 執行思路
如果表達式1爲 true ,則返回表達式2的值,如果表達式1爲 false,則返回表達式3的值
簡單理解: 就類似於 if else (雙分支) 的簡寫
-->
<script>
var num = 10;
var result = num > 5 ? '是的' : '不是的';
console.log(result);
</script>
</head>
<body>
</body>
</html>
19 - 數字補0案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>19-數字補0案例</title>
<!--
案例: 數字補0
-------------
用戶輸入數字,如果數字小於10,則在前面補 0 ,比如01,09 ,如果數字大於10,則不需要補,比如 20。
案例分析
-------
1. 用戶輸入0~59之間的一個數字
2. 如果數字小於10,則在這個數字前面補0,(加0 拼接) 否則 不做操作
3. 用一個變量接受這個返回值,輸出
-->
<script>
var time = prompt('請您輸入一個 0 ~ 59 之間的一個數字');
var result = time < 10 ? '0' + time : time;
alert(result);
</script>
</head>
<body>
</body>
</html>
20 - switch分支語句
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>20-switch分支語句</title>
<!--
5. 分支流程控制 switch 語句
==========================
5.1 語法結構
------------
switch 語句也是多分支語句,它用於基於不同的條件來執行不同的代碼。
當要針對變量設置一系列的特定值的選項時,就可以使用 switch。
switch( 表達式 ){
case value1:
break;
case value2:
break;
default:
}
switch :開關 轉換 , case :小例子 選項
關鍵字 switch 後面括號內可以是表達式或值, 通常是一個變量
關鍵字 case , 後跟一個選項的表達式或值,後面跟一個冒號
switch 表達式的值會與結構中的 case 的值做比較
如果存在匹配全等(===) ,則與該 case 關聯的代碼塊會被執行,並在遇到 break 時停止,整個 switch 語句代碼執行結束
如果所有的 case 的值都和表達式的值不匹配,則執行 default 裏的代碼
注意: 執行case 裏面的語句時,如果沒有break,則繼續執行下一個case裏面的語句。
-->
<script>
switch (8) {
case 1:
console.log('這是1');
break;
case 2:
console.log('這是2');
break;
case 3:
console.log('這是3');
break;
default:
console.log('沒有匹配結果');
}
</script>
</head>
<body>
</body>
</html>
21 - switch注意事項
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>21-switch注意事項</title>
<script>
var num = 1;
switch (num) {
case 1:
console.log(1);
case 2:
console.log(2);
case 3:
console.log(3);
break;
}
</script>
</head>
<body>
</body>
</html>
22 - 查詢水果案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>22-查詢水果案例</title>
<!--
案例: 查詢水果
-------------
用戶在彈出框裏面輸入一個水果,如果有就彈出該水果的價格, 如果沒有該水果就彈出“沒有此水果”
案例分析
-------
1. 彈出 prompt 輸入框,讓用戶輸入水果名稱,把這個值取過來保存到變量中。
2. 將這個變量作爲 switch 括號裏面的表達式。
3. case 後面的值寫幾個不同的水果名稱,注意一定要加引號 ,因爲必須是全等匹配。
4. 彈出不同價格即可。同樣注意每個 case 之後加上 break ,以便退出 switch 語句。
5. 將 default 設置爲沒有此水果。
-->
<script>
var fruit = prompt('請您輸入查詢的水果:');
switch (fruit) {
case '蘋果':
alert('蘋果的價格是 3.5/斤');
break;
case '榴蓮':
alert('榴蓮的價格是 35/斤');
break;
default:
alert('沒有此水果');
}
</script>
</head>
<body>
</body>
</html>
23 - switch和if else if區別
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>23-switch和if else if區別</title>
<!--
5.2 分支流程控制switch語句的區別
------------------------------
1. 一般情況下,它們兩個語句可以相互替換
2. switch...case 語句通常處理 case爲比較確定值的情況,而 if…else…語句更加靈活,常用於範圍判斷(大於、
等於某個範圍)
3. switch 語句進行條件判斷後直接執行到程序的條件語句,效率更高。而if…else 語句有幾種條件,就得判斷多少次。
4. 當分支比較少時,if… else語句的執行效率比 switch語句高。
5. 當分支比較多時,switch語句的執行效率比較高,而且結構更清晰。
-->
</head>
<body>
</body>
</html>
作業
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>作業</title>
<!--
5.3 作業
---------
1. 判斷時間階段。 比如 用戶輸入12點 彈出 中午好 用戶輸入 18點 彈出傍晚好 用戶輸入 23點 彈出深夜好
2. 比較兩個數的最大值 (用戶依次輸入2個值,最後彈出最大的那個值)
3. 用戶輸入一個數,來判斷是奇數還是偶數
4. 根據用戶輸入的數值(數字1 到 數字 7),返回星期幾
5. 接收班長口袋裏的錢數?若大於等於2000,請大家喫西餐。若小於2000,大於等於1500,請大家喫快餐。
若小於1500,大於等於1000,請大家喝飲料。若小於1000,大於等於500,請大家喫棒棒糖。否則提醒班長下次把錢帶夠
6. 分數轉換,給一個分數,判定等級。大於等於90 A,大於等於80小於90 B,大於等於70小於80 C ,大於
等於60小於70 D,小於60 E
7. 預習下 循環控制 for 循環
-->
<script>
var time = prompt('請問現在幾點了?');
if(time >= 3 && 6 >= time){
alert('凌晨好');
}else if(8 >= time){
alert('早晨好');
}else if(11 >= time){
alert('上午好');
}else if(13 >= time){
alert('中午好');
}else if(17 >= time){
alert('下午好');
}else if(19 >= time){
alert('傍晚好');
}else if(23 >= time){
alert('晚上好');
}else {
alert('深夜好');
}
var num1 = prompt('請輸入一個數');
var num2 = prompt('請輸入一個數');
alert((num1 > num2) ? num1 : num2);
var user = prompt('請輸入一個數');
alert((user % 2 == 0) ? '偶數' : '奇數');
var week = prompt('請輸入日期數:');
switch(parseInt(week)){
case 1:
alert('今天星期一');
break;
case 2:
alert('今天星期二');
break;
case 3:
alert('今天星期三');
break;
case 4:
alert('今天星期四');
break;
case 5:
alert('今天星期五');
break;
case 6:
alert('今天星期六');
break;
case 7:
alert('今天星期日');
break;
default:
alert('輸入的日期不在數字1到數字7範圍內');
}
var money = prompt('班長口袋裏的錢數是多少?');
if(money >= 2000){
alert('請大家喫西餐');
}else if(money >= 1500){
alert('請大家喫快餐');
}else if(money >= 1000){
alert('請大家喝飲料');
}else if(money >= 500){
alert('請大家喫棒棒糖');
}else {
alert('班長下次把錢帶夠');
}
var fraction = prompt('請輸入分數');
if (fraction >= 90) {
alert('A')
} else if (fraction >= 80) {
alert('B')
} else if (fraction >= 70) {
alert('C')
} else if (fraction >= 60) {
alert('D')
} else {
alert('E')
}
</script>
</head>
<body>
</body>
</html>