条件语句
1.三种 if 语句
if(隐式转换为布尔值){}
if () {} else {}
if () {} else if() {}
条件中的结果不是 “”,false,0,NaN,undefined,null就可以进入条件;
如果条件语句块只有一句话的时候,可以省略{};
配合函数中的return将会很少使用到if else if .
2.switch开关语句
判断switch()中表达式是否(绝对===)等于case后的值
var s=10;
switch (s%10){
case 1:break;
case 2:break;
case 0:document.write("switch常用语法格式");break;
default:break;
}
-
switch 穿越
break作用是跳出switch语句块,break后面的语句块将不再执行;
但是如果没有break,仍然在不判断结果的情况下执行一个case的语句块,这叫穿越.- switch 或者穿越
var s=10; switch(s%10){ case 0: case 1: case 2: case 3: case 4: s++; break; } console.log(s); //只要条件匹配,就能够执行最后的语句块;结果是11。
- switch 累积穿越
var s=10; switch(s%10){ case 0: s=100; case 1: case 2: case 3: case 4: s--; break; } console.log(s); //s重新赋值,重新计算值;结果是99。
- switch 或者穿越
3.练习:输入成绩,返回分类段
- 方法一:if else if
var value = parseInt(prompt("请输入成绩")); //prompt弹窗输入内容 //如果输入的是小数,就取整;如果输入比如12a也会取12 if(!isNaN(value)){ if(value>100) document.write("输入错误"); else if(value>90) document.write("A"); else if(value>80) document.write("B"); else if(value>70) document.write("C"); else if(value>60) document.write("D"); else document.write("Error!"); }else document.write("非数值");
- 方法二:switch
var score = Number(prompt("请输入你的成绩")); //输入的成绩是字符串的话,直接NaN switch(parseInt(score/10)){ case 10: //当100时,没有break,穿越了,实际执行的是case :9 case 9:document.write("A");break; case 8:document.write("B");break; case 7:document.write("C");break; case 6:document.write("D");break; default:document.write("输入错误"); }
循环语句
1、必须有起始值;必须有一个循环条件;必须有一个不断向条件外处理的语句;
2、循环是同步,如果循环较长就会卡顿;
3、跳出循环break ;break还可以设置锚点位置;
4、当执行continue后,跳出当前循环,进入下一次循环。
1、 while语句
示例1:写出 ul里面5个li
var str1 = "";
str1+="<ul>";
var i=0;
while(i<5){
str1+="<li>"+i+"</li>";
i++;
}
str1+="</ul>";
document.write(str1);
示例2:双重循环语句,设置锚点,打印多个ul,每个ul里有多个li
var str = "";
var i=0,j;
while (i<5){
str+="<ul>";
j=0;
AB: while(j<3){
str+="<li>"+j+"</li>";
if(i===1&&j===1) break AB;//控制不打印第二个ul的第三个li
j++;
}
str+="</ul>";
i++;
}
document.write(str);
示例3:table表格js写法 5个表格,每个表格里面3行4列,数值依次从0-11;
var j = 0,i = 0,k=0;
var str = "";
str += "<table>";
while(j<3){
str+="<tr>";
i=0;
while(i<4){
str+="<td>"+(j*4+i)+"</td>";//打印 j = 4;
i++;
}
str+="</tr>";
j++;
}
str+="</table>";
document.write(str);
示例4:九九九乘法表
var j = 1,i,k=0;
var str = "";
str += "<table>";
while(j<10){
str+="<tr>";
i=9;
while(i>0){
str+="<td>"+j+"*"+i+"="+j*i+"</td>";//打印 j = 4;
if(j==i) break;
i--;
}
str+="</tr>";
j++;
}
str+="</table>";
document.write(str);
示例5:链表
var obj={
value:1,next:{
value:2,next:{
value:3,next:{
value:4,next:{
value:5,next:{
value:6
}
}
}
}
}
};
console.log(obj.value);//1只有第一个
console.log(obj.next);//打印next的内容
while(obj=obj.next){
console.log(obj.value);//可以遍历从next开始往下的内容
}
示例6:求100-1000的质数
//素数是1和他本身外,都不能整除的数
//思路:用i除以1-自身之间的数值,如果没有余数,就不是素数(质数)
var i = 100,j=2,bool;
while(i<1000){
bool=false;
j=2;//每次从2开始
while(j<i){
if(i%j===0){
bool=true;
break;
}
j++;
}
if(!bool){
console.log(i);
}
i++;
}
示例7:画三角形
var i=1,j=0,k=0;
while(i<10){
k=0;
while(k<(9-i)){
document.write(" ");
k++;
}
j=1;
while(j<i*2){
document.write("*");
j++;
}
document.write("<br>");
i++;
}
2、do while语句
是先执行语句块,再判断是否继续循环
3、 for循环
for(初始变量;循环条件;向条件外变化的表达式){
循环体
}
初始定义变量,每次循环的开始先执行,执行一次;
条件语句先判断,条件语句计算完成后必须转换为布尔值,是true才进入语句块;
向条件外变化的表达式,是所有语句块运行完成后执行的。
- for循环的简化
for(var i=0,sum=0;i<100;i++){
sum+=i;
}
console.log(sum);//4950
for(var i=0,sum=0;i<100;sum+=i,i++);
console.log(sum);//4950
for(var i=0,sum=0;i<100;sum+=i++);
console.log(sum);//4950
综合应用
- 求闰年
成为闰年条件:能被4整除,不能被100整除;或者,能被400整除。
for(var i=1000;i<2000;i++){
if(i%100===0 && i%400!==0)continue;//不满足条件的先排除
if(i%4===0 || i%400===0) console.log(i);
}
来源:CSDN
作者:weixin_43297321
链接:https://blog.csdn.net/weixin_43297321/article/details/104074828