分支语句:
单分支: 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>");
- }
来源: http://www.bubuko.com/infodetail-3300475.html