26.js分支結構

程序的三大結構

順序結構、分支結構、順序結構

下面圖面在網上找的,如果由侵權,請聯繫

順序結構
代碼從上到下依次執行
在這裏插入圖片描述
分支結構
根據條件判斷代碼是否執行某個代碼塊
在這裏插入圖片描述
循環結構
根據某個條件來重複執行,減少代碼量
在這裏插入圖片描述

分支循環:有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:
		代碼塊1break;
	case 情況2:
		代碼塊2break;
	case 情況3:
		代碼塊3break;
	....
	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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章