JavaScript基礎之程序流程的三大結構

程序的流程控制就是指程序運行時,個別指令運行或求值的順序。複雜的程序時由若干

個基本結構組成,每個基本結構可以包含一條或者若干條語句。程序中語句的執行順序

稱爲程序結構。

1、順序結構 -> 程序語句是按照書寫順序執行

2、選擇結構 -> 某個條件來決定是否執行

3、循環結構 -> 程序中某些語句要反覆執行多次


Demo1:約女孩子看電影的流程

 //>>使用編程語言定義兩個人 通信方式 以及 電影票
  var boy = "小強"; //男主角
  var girl = ["小紅","小花“,"小莉“,"小蘭"]; //備選女主角,現在從以前都一個變成多個了
  //定義一個變量來保存女孩是否有空的狀態,如果有空爲true,沒有空爲false
  var flag = false;//默認沒空,做最壞的打算
  var conectType = "微信";
  var film = "智取威虎山";
  for(var i=0;i<5;i++){
  //在這裏循環去問女孩是否有空
  document.write(boy+":"+girl[i]+"今晚有空嗎?我們去看"+film);
  }
  //假如詢問完成以後小蘭有空,那麼返回一個狀態 true
  flag = true;

  //根據這個狀態來執行後面的操作

  if(flag){//這裏表示已經約到人來
  document.write("馬上打開app開始訂票");
  //>>訂票,約定見面時間
    document.write("選擇"+girl+"附近電影院,6:30場次,付款");
    docment.write(boy+":"+"訂了你家附近xx電影院6:30的票");
    docment.write(girl+":"+boy+"那我們6:00電影院門口見面");
  //>>取票、進場、看電影
    document.write("取票、進場、看電影");
  //>>電影結束 各自回家
    document.write('電影結束 各自回家');
  }else{//這裏表示沒有約到人到情況
    document.write('回家睡大覺');
  }

總結:從上面到例子可以看出,編程就是去考慮多種情況,採取不同到方案應對可能出現到情況,最終實現我們需求到一個過程。流程控制是程序到基礎,必須掌握


Demo2:判斷成績是否合格(if,if...else)

  var num = prompt("請輸入分數:");//獲得分數
  if(num<60){//如果小於60 執行裏面的代碼
  console.log("同學,你考了"+num+“分,沒有及格哦”);
  }else{//如果大於等於60 執行裏面的語句
  console.log("同學,恭喜你,考了"+num+“分,成功晉級”);
  }

總結:if...else 語句和if語句很像,只是多了一種應對方案,if語句裏面,如果條件不成立,那麼就什麼都不用做,而if...else語句多了一個功能,那就是如果if條件裏面的條件不滿足,那麼就執行else後面括號中的內容。所以,用if...else語句,要麼執行if後面括號的代碼,要麼執行else後面括號中的代碼,二選一


Demo3:判斷季節(switch)

  /**
  * 輸入1--4分別再對應輸出 春夏秋冬 ,其他的輸出 “未知季節”
  */
  var num = prompt('請輸入:');
  switch (num){
  case 1:
  //當用戶輸入1的時候,執行這裏的代碼
  document.write('春');
  break;
  case 2:
  //當用戶輸入2的時候,執行這裏的代碼
  document.write('夏');
  break;
  case 3:
  //當用戶輸入3的時候,執行這裏的代碼
  document.write('秋');
  break;
  case 4:
  //當用戶輸入4的時候執行這裏的代碼
  document.write('冬');
  break;
  default:
  //以上情況都不滿足的時候,執行這裏的代碼
  document.write('未知季節');
  break;
  }

總結:到這裏選擇結構的幾大語句已經學完,可以大體分爲兩類if語句和switch語句,if語句又叫作條件分支語句,知道某個條件的時候使用if語句,主要的應用場景就是做條件的判斷,switch語句主要是表示在某些狀態下做出具體反應,又叫作狀態分支語句,當不知道條件,但是知道用戶輸入的狀態的時候,用switch狀態分支會更好。以上語句的寫法都是固定的,必須嚴格按照語法規則來寫


Demo4:循環輸出1-100.(for循環)

//語法結構:
  for(初始化表達式;條件表達式;條件改變表達式){
      循環體;
  }
//輸出1-100
  for(var i=1;i<100;i++){
      document.write(i+"<br/>");
  }

注意:如果條件表達式永遠爲真的情況下,程序就會一直循環,造成死循環,把瀏覽器卡死


Demo5:一張紙的厚度是0.01毫米,對摺多少次後能超過1米?(while循環)

  var paper = 0.01;//紙的初始厚度
  var count = 0;//統計摺紙次數
  while(paper<1000){
      paper = paper*2;
      count++
  }
  console.log(count);

總結:while和for都可以用來做循環,那麼它們各自的應用場景是什麼呢?什麼情況下用for,什麼情況下用while?從上面的代碼我們可以知道,使用for循環的話得先知道要循環多少次,這個次數是已經知道了的,而while的特點就是隻要條件表達式爲真就循環,否則就退出,所以,我們得出一個常用的結論,當知道循環次數的時候,用for循環要方便一些,當不知道次數,但是知道條件表達式什麼時候爲false,這個時候可以用while更方便一些。


Demo6: 模擬考試(do...while)

  var i = 0;
  do{
      i++;
      var score = parseInt(Math.random()*101);
      console.log("第"+i+"次考試成績爲:"+score+"<br />");
  }while(score<60);
      console.log('考試通過!<br />');

總結:do while循環和while循環的用法差不多,只是do while循環比較粗暴,一上來不管三七二十一就先執行一次,執行完成了以後再去問問條件表達式是否滿足條件,所以說do while循環執行循環體的次數是大於等於1次,而while循環比較溫柔,先上來問問條件表達式可不可以執行,所以執行循環體的次數是大於等於0次。


Demo7: break,continue語句

//break;表示跳出當前循環
  /**
  * 當i=5時,跳出循環
  */
  for(var i = 0;i<10;i++){
  if(i==5){
  break;//結束當前for循環,也就是說循環i只加到5就被結束掉了
  }
  console.log(i);
  }
  /**
  *當i=5時,跳出本次循環
  */
  for(var i=0;i<10;i++){
  if(i==5){
  continue;//結束本次循環,繼續下次循環
  }
  console.log(i);
  }

總結:continue和break都是用來跳出循環的,只是跳出的位置不同,break直接把循環結束掉了,而continue只是結束掉了一次循環,後面的循環還要繼續,有時候去判斷數組裏面是否有某個值的時候,需要去把數組元素循環查詢出來做對比,如果對比上了就不用繼續查詢後面的元素了,這種情況需要用到break,當要過濾掉某次循環掉話,可以用條件語句加上continue實現.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章