JS中的流程控制語句:
順序結構
從上到下依次執行 代碼的先後順序對結果又直接影響
到目前爲止 我們的編碼都是順序結構
console.log("好希望自己彩票中獎:"+a+"萬!");
var a=100; //代碼的順序對結果又直接影響
選擇結構
編程數據考慮問題:
正確數據
錯誤數據
邊界數據
if語句 switch語句
if語句:
格式1:
if(表達式){
語句體;
}
首先運行表達式 看其結果是轉換成true還是false
如果是true則執行語句體
如果是false則不執行語句體
繼續執行後面順序代碼
注意點:
if語句只能控制大括號裏面的語句體
語句體可以是一句 可以是多句
格式2:
if(表達式){
語句體1;
}else{
語句體2;
}
首先運行表達式 看其結果是轉換成true還是false
如果是true 則執行語句體1
如果是false則執行語句體2
繼續執行後面順序代碼
格式3:
if(表達式1){
語句體1;
}else if(表達式2){
語句體2;
}else if(表達式3){
語句體3;
}
.
.
.else if(表達式n){
語句體n;
}else{
語句體n+1;
}
首先運行表達式1 看其結果是轉換成true還是false
如果是true 則執行語句體1
如果是false
則繼續判斷表達式2
如果是false 繼續向下判斷
直到表達式n 都是false
執行else的語句體n+1
var score=-50;
/* if(a>60){
console.log("買遙控汽車!!!");
}*/
/*if(score>=60){
console.log("買遙控汽車玩兒!!!");
}else{
console.log("買一個雞毛撣子體驗一下!");
}*/
if(score==100){
console.log("海洋館海底5日遊!");
}else if(score>=90 && score<100){
console.log("買一套5面模擬試題去做!!順帶着去北京玩一圈");
}else if(score>=70 && score<90){
console.log("買一個豪華版文具盒!");
}else if(score>=60 && score<70){
console.log("老老實實在家呆着 ,還能玩會手遊!");
}else if(score>=0 && score<60){
console.log("抓撓和雞毛撣子齊飛!!!");
}else{
console.log("數據出現錯誤,請找老師重新登記!");
}
/*
編程數據考慮問題:
正確數據
錯誤數據
邊界數據
*/
console.log("繼續準備下一次考試");
switch分支語句:
就是用來匹配固定值
格式:
switch(表達式){
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
case 值3:
語句體3;
break;
.
.
.
case 值n:
語句體n;
break;
default:
語句體n+1;
break;
}
運算過程:
首先運行表達式看其結果
拿着結果去下面的case分支去匹配
匹配到哪一個分支就執行哪一個分支的語句
然後switch語句 繼續後面代碼
如果所有分支都不匹配
則執行default n+1語句 switch結束
var key=1;
switch(key){
case 1:
console.log("打開一號寶藏");
break;
case 2:
console.log("打開二號寶藏");
break;
case 3:
console.log("打開三號寶藏");
break;
case 4:
console.log("打開四號寶藏");
break;
default:
console.log("謝謝惠顧!");
break;
* 注意點:
* case分支不能重複 重複了 也只會找到第一個
* break是幹嘛的? 能不能省略?
* 不能省略 否則case穿透
* break是用來終止switch語句的 一旦省略 那麼會匹配多個case 結果不是我們想要的
*
* default能不能省略?
* 能 但是一般不建議 除非是頁面單選題 固定選項
*
* default一定要在最後麼? 不一定非得在最後
* 但是一般按照正常邏輯結構 放最後 最好
*
*
* if語句和switch的區別:
*
* switch:
* 只能做固定值的匹配
*
* if:
* 能匹配固定值
* 還能匹配範圍值 switch不可以
* 選項很少的 建議使用if
循環結構
循環結構語句: for循環 while循環 do...while循環(瞭解) 循環語句就是反覆執行同一塊代碼 for循環格式: for(初始化變量;循環判斷條件;控制條件語句){ 循環體語句(可以是一句 可以是多句); } 執行流程: 1.先執行初始化變量 創建出來一個循環中使用的變量 2.執行循環判斷條件 看其結果是true還是false 3.如果是false則循環停止運行 4.如果是true 則執行循環體語句 5.執行控制條件語句 再次回到第"2"步 繼續執行 直到 判斷條件爲false循環 停止
for(var i=0;i<10;i++){
console.log("Hello World!!!---->"+i);
}
console.log("總算執行到我了....");
for循環的另類寫法(很少用)
/* var i=0;
for(;i<10;){
console.log("Hello World!!!---->"+i);
i++;
while循環: 格式: 初始化變量; while(循環判斷條件){ 循環體語句; 條件控制語句; }
var i=0;
while(i<10){
console.log("你好:"+i);
i++
}
console.log("總算到我了");
while循環和for循環有什麼區別: for循環偏向計數執行 while循環偏向一種狀態改變循環
do...while循環 do{ 循環體語句; 條件控制語句 }while(循環判斷條件); 無論條件爲如何 都會先執行一遍 再判斷
var i=10;
do{
console.log("你好:"+i);
i++;
}while(i<10);
console.log("總算到我了");
雙重for循環 循環嵌套的執行流程: 外層循環執行一次 內層循環執行一輪
for(var i=0;i<5;i++){
console.log("外層循環:----------------->"+i);
for(var j=0;j<5;j++){
console.log("內層循環:++++++"+j);
}
}
break 和 continue的使用
<script>
for(var i=0;i<10;i++){
if(i==5){
// break;//中止 中斷 表示中止當前循環
continue; //跳出本次循環 進入下一次循環
}
console.log("你好:"+i);
}
console.log("總算到我了...");
</script>