###### tags: `JavaScript` # JS Class 2 0821 ## :memo: 模組6. 流程控制 ### 6-1. 何謂流程控制 有關聯/因果性的再用if else if,否則單選判斷用switch即可 ![](https://i.imgur.com/2qVQVqZ.png) ### 6-2. if else 選擇結構 if else:非A即B ### 6-3. switch case 選擇結構 時間複雜度,編譯器會最佳化演算法,以達成較快的速度 資料結構:走訪、遍歷、尋訪 二元樹裏的資料其實不一定是依照大小或從左到右排序的,可能依照輸出的方式不同,結果也會不盡相同。 目前理論上有四種輸出順序: 前序遍歷 (Preorder Traversal) 中序遍歷 (Inorder Traversal) 後序遍歷 (Postorder Traversal) 層序遍歷 (Level-order Traversal) ![](https://i.imgur.com/ibpkuwO.png) ![](https://i.imgur.com/3gJiuJC.png) --- ## :memo: 模組7. 重複流程結構 ### 7-1. 重複結構設計要領 ***變因寫在break、continue前*** c#練習:將陣列[1,3,5,7,9]加為[6,8,10,12,14]印出 ``` private void button2_Click(object sender, EventArgs e) { int[] x = { 1, 3, 5, 7, 9 }; Plus(x); foreach(int i in x) { Console.WriteLine(i); } } public int[] Plus(int[] arr) { for (int i =0;i <arr.Length;i++) { arr[i] += 5; } return arr; } ``` ### 7-2. while 迴圈 ### 7-3. do while迴圈 --- ## :memo: 模組8. for迴圈與進階控制 ### 8-1. for迴圈語法與流程 每次迴圈結束要改變誘因/變數 ``` ex:var x =0 while(x<5){ console.log(x); x++; if(x==2) {continue;} } 略過2印出 ``` ### 8-2. 巢狀迴圈 ``` var x = [45,6,465,21,354,498,432,12,312,121231,123,123,321] var n = new Set(); for (i=0;i<x.length;i++){ n.add(x[i]); } ``` ///將重複值移除/// ### 8-3. break continue 語法 --- ## :memo: 模組9. 陣列 ### 9-1. 陣列宣告與初始化 方法也是物件 陣列可隨時改變長度,不用new/預先給大小 陣列建議寫法: ![](https://i.imgur.com/gAtnW0g.png) ### 9-2. 陣列操作 二維陣列第幾個陣列第幾個參數: ![](https://i.imgur.com/TOtdanb.png) ### 9-3. 陣列常用屬性與方法 ()小括號是執行的意思 ![](https://i.imgur.com/dkDsqrd.png) 練習:設一個函式可以新增[1,2,3,4,5]的陣列形式 ``` function name() { var arr = [] for(i=1;i<6;i++){ arr.push(i); } return arr; } ``` 合併陣列並排序 ![](https://i.imgur.com/oGPMXh5.png) --- ## :memo: 模組10. 函式 ### 10-1. 函式宣告與初始化 練習:設計一個函式(如果為原住民,分數+10分。分數90分以上為S並印出,80以上為A....) ``` function getscore(score,native){ if(score<91 && native){ score +=10 } var show = ""; switch(parseInt(score/10)){ case 10: case 9: show="S"; break; case 8: show="B"; break; case 7 : show="C"; break; case 6: show="D"; break; default: console.log("FAILED"); }return show; } ``` ///即便超過100也顯示S/// ### 10-2. 函式使用 ![](https://i.imgur.com/aSmBcC3.png) 2種函式定義方式依個人習慣使用