分支语句:
单分支: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>");
}