分支語句:
單分支:if () {};
if 語句名 ()是否執行的條件 {}執行語句;
雙分支:if () {} else {};
if 如果 else 否則 按條件二選其一執行;
多分支:(1)由雙分支模擬的多分支:
if () {
}else if () {
}else if () {
}else if () {}......;
(2)由系統提供的語句:
switch () {};
switch 語句名 ()要判斷的值 {} 執行語句;
switch () {
case 1: ... ; break;
case 2: ... ; break;
case 3: ... ; break;
·
.
.
default: ... ; // case里都不符合的時候執行default
};
case的穿透特性:在一個switch語句內,只會進行一次case的判斷,如果判斷成功,
后面的代碼全部執行。
break關鍵字:阻止case的穿透,判斷成功后,本次只執行到當前代碼,后面的不執行。
(break加在哪?加幾個?按需求定。)
注意:在switch中的case比較中,不存在隱式類型轉換,嚴格比較(===)。
eg:
<body>
<input type="text" id="txt">
<input type="button" id="btn" value="點擊試試">
</body>
<script>
var txt = document.getElementById("txt");
var btn = document.getElementById("btn");
btn.onclick = function(){
switch(parseInt(txt.value)){
case 0:
console.log("星期天");
break;
case 1:
console.log("星期一");
break;
case 2:
console.log("星期二");
break;
default:
console.log("請輸入0~2之間的數字");
}
}
</script>
補充:if () {
console.log("真");
} else{
console.log("假");
}
場景:if的小括號()中,任何類型最終都會被轉成布爾值;
()中為數值時:除了0都轉為true;
()中為字符時:除了“”空字符都轉為true;
()中為對象時:都轉為true;
()中為數組時:都轉為teue;
()中為函數時:都轉為true;
()中為三大特殊值時:undefined,NaN,null為false。
循環語句:
循環三要素:停止條件;
計數器;
計數器改變。
while循環:while(){};
while 語句名 ()執行條件 {}循環體;
demo:var i = 0;
while(i < 10){
console.log(“hello”);
i ++;
}
do-while循環:do()while(){};
do 語句名1 () do的執行語句 while 語句名2 () 執行條件 {} while的執行語句;
demo:var i = 0;
do{
console.log("這是do的語句:"+ i);
i++;
}while( i < 10 ){
console.log("這是while的語句:"+ i);
}
while后的條件為true時,會執行do后面的語句;
while后的條件為false時,會執行一次while后的語句。
while和do-while的區別:do-while在任何情況下都比while多執行一次。
for循環:for(){}
for 語句名 ()條件組 {} 循環體;
demo:for(var i = 0;i<10;i++){
console.log(i);
}
死循環:無法通過自身控制結束的循環。
當不知道程序需要執行多少次是可用死循環,一直執行,不斷判斷
其他條件是否符合, 符合了就停止。
控制關鍵字:控制循環的執行或停止
break:結束循環,不再執行;
continue:跳過當前循環,進入下一次循環。
(while比for更適合做死循環)
eg:籃球從5米高的地方掉下來,每次彈起的高度是原來的30%,經過幾次彈起,
籃球的高度小於0.1米
(未知要循環幾次,用死循環,記得加控制關鍵字,符合條件的時候停止循環)
var h = 5;
var i = 1;
while(true){
h = h * 0.3;
if(h < 0.1){
console.log(i);
break; // 符合條件時,停止循環,后面的代碼都不執行。
}
i++;
}
循環的嵌套:可以在循環里再加循環,用來解決多行多列的結構。
外層循環控制行,內層循環控制列。
eg:打印一個九九乘法表
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
document.write( j + "*" + i + "=" + i*j + " " );
}
document.write("<br>");
}