程序的三大結構
順序結構、分支結構、順序結構
下面圖面在網上找的,如果由侵權,請聯繫
順序結構
代碼從上到下依次執行
分支結構
根據條件判斷代碼是否執行某個代碼塊
循環結構
根據某個條件來重複執行,減少代碼量
分支循環:有if和switch兩個
if由單分支、雙分支和多分支
if單分支
語法:if(條件){ 代碼塊 }
如果條件爲true,就執行花括號裏面的代碼塊,
爲false就不執行花括號裏面的,繼續執行下面的代碼
var age = 20;
if(age>18){
alert("你成年了");//條件成立就執行
}
console.log("hello");
if雙分支
雙分支if:
if(條件){ 代碼塊1 }
else{ 代碼塊2 }
如果條件爲true,就執行代碼塊1,爲false就執行代碼塊2
var age = 10;
if(age>18){
alert("成年了")
}else{
alert("孩子,你還小");//因爲10小於18,所以執行這個代碼塊
}
多分支if:
語法a:
if(條件1){
代碼塊1
}
else if(條件2){
代碼塊2
}
else if(條件3){
代碼塊3
}
...
/*
如果條件1爲true,就會執行代碼塊1,
如果條件1爲false,就會判斷條件2是否爲true,
爲true就執行代碼塊2,爲false就判斷條件3,後面的依此類推
注:如果有多個{},只會執行一個,一旦其中一個爲true,後面的就不會在判斷了
*/
語法b:
if(條件1){
代碼塊1
}
else if(條件2){
代碼塊2
}
else if(條件3){
代碼塊3
}
else{
代碼塊4
}
/*
這個和上面的差不多,多了個else{},如果條件1,條件2和條件3都爲false,
就會執行else{}裏面的
*/
switch
switch 也是判斷某一個是否滿足
語法:
switch (n) {
case 情況1:
代碼塊1;
break;
case 情況2:
代碼塊2;
break;
case 情況3:
代碼塊3;
break;
....
default:
上述情況都不滿足的時候執行的代碼
break;
/*
工作原理:首先設置表達式 n(通常是一個變量)。
隨後表達式的值會與結構中的每個 case 的值做比較。
如果存在匹配,則與該 case 關聯的代碼塊會被執行。
使用 break 來阻止代碼自動地向下一個 case 運行。
注:break關鍵字會導致代碼執行流跳出switch語句。
*/
}
//輸入1-7的數字,顯示是星期幾
var week=2;//表示
switch(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("輸入錯誤,請重新輸入一下");
break;
}
//最後彈出的是星期二
//需要注意的
var num1=2;
switch(num1){
case 1:
alert("1");
case:2
alert("2");
case:3:
alert("3");
break;
case 4:
alert(4);
break;
case 5:
alert(5);
case 6:
alert(6);
break;
}
//這個switch彈出的是2和3
//break是 來阻止代碼自動地向下一個 case 運行
if…else if…else 語句和switch case語句的比較
前者可以比較範圍,後者比較的是定值
前者的效率沒有後者效率快(前者需要一個一個去比較,後者只需和case比較一次就可以)
三元運算符
三元運算符由 ? : 兩個符後組成
三元運算符是 if {} else{} 的簡寫
語法:條件?代碼塊1:代碼塊2
如果條件爲true,就執行代碼塊1
爲false,就執行代碼塊2
擴展:
prompt(str1,str2) 彈出可輸入的對話框
str1: 提示要顯示在消息對話框中的文本
str2:文本框中的內容
返回值: 1. 點擊確定按鈕,文本框中的內容將作爲函數的返回值
2. 點擊取消按鈕,將返回null
/*
1、開發一款軟件,根據公式(身高-108)*2=體重,可以有10斤左右的浮動。
來觀察測試者體重是否合適
*/
var height = parseInt(prompt('請輸入您的身高'));
var tizhong = parseInt(prompt('您是多少斤'));
var weight = (height - 108) * 2;
var diff = tizhong - weight
if (diff <= 10 && diff >= -10) {
alert("親,您的身材剛剛好");
} else {
alert("親,您的體重不合適,需要鍛鍊哦")
}
//2、輸入分數,判定成績等級
var score = parseInt(prompt("請輸入1~100之間的整數分數"));
if(score>=0 && score<=100){
if (score <= 100 && score >= 90) {
alert("親,您的等級是 A");
} else if (score < 90 && score >= 80) {
alert("親,您的等級是 B");
} else if (score < 80 && score >= 70) {
alert("親,您的等級是 C");
} else if (score < 70 && score >= 60) {
alert("親,您的等級是 D");
} else{
alert("菜雞,你的等級是 E,還不努力學習");
}
}else {
alert("親,您輸入的有問題,請刷新頁面,再輸入一次");
}
// 3、輸入年份,月份,顯示當月的天數(注:閏年的2月是29天)
var year = parseInt(prompt("請輸入年份"));
var month = parseInt(prompt("請輸入月份"));
// 能被400整除,或者能被4整除但不能被100整除的都是閏年
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
alert(month + "月有31天");
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
alert(month + "月有30天");
} else if (month == 2) {
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
alert(month + "月有29天");
} else {
alert(month + "月有28天");
}
}
//輸入年月日,判斷是一年的第多少天
var year = 2020;//年
var month = 3;//月
var date = 14;//日
var sum = 0;//求和
switch (month) {
case 12:
sum += 30;
case 11:
sum += 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 31;
case 7:
sum += 30;
case 6:
sum += 31;
case 5:
sum += 30;
case 4:
sum += 31;
case 3:
sum += 28;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
sum += 1;
}
case 2:
sum += 31;
case 1:
sum += date;
break;
default:
alert("error");
break;
}
alert(sum);