switch
主要实现等值匹配,且只匹配一次
结束条件有两种:
直接执行完所有的case语句;
遇到break直接跳出条件;
所有条件的对立面为default(类似于if的else)
switch(匹配值){
case 被匹配值1:(匹配值必须是常量)
语句1;
break;
case 被匹配值2:
语句2;
break;
......
case 被匹配值N:
语句n;
break;
deafult:语句;
}
If条件语句
条件表达式的结果为布尔值
条件表达式修饰后面的一条语句
单分支
if{}
多分支
if{
}else{
}
if{
}else if{
}eise{ }
三目运算
表达式1?表达式2:表达式3
表达式1相当于条件语句,其值为布尔值
返回表达式2的值(当1表达式判断结果为true时)
返回表达式3的值(当1表达式判断结果为false时)
while
var a; //循环变量
while(条件表达式){ //循环条件
//循环体;
a++; //循环趋近于结束的条件
}
while循环注意事项:
1.循环执行的顺序:先条件再循环体再条件
2.有限次数的循环,必须有一个使循环趋近于结束的条件;
3.死循环
do…while
do{
循环体;
}while(条件);
执行顺序:先循环体->再条件->
无论条件第一次是否成立,都至少执行一次循环体
do…while和while的异同
当首次条件成立时,这俩没区别
当首次条件不成立时,do...while要执行一次循环体
for循环
for(表达式1;表达式2;表达式3){
表达式4;
}
执行顺序:1243243243
for 循环所有表达式都可以省略
表达式1:循环变量初始化
表达式2:循环条件
表达式3:使循环趋近于结束的条件
表达式4:循环体
循环使用场景:
1.知道循环次数用for
2.不知道循环次数用while
for循环嵌套
for(表达式1;表达式2;表达式3){
for(表达式4;表达式5;表达式6){
}
}
结束循环(break和continue)
break:跳出本层循环
while(true){
while(true){
console.log("heihei");
break;
}
break;
}
continue:跳出本次循环;
var sum = 0;
for(var i=0; i<=5; i++){
if(i%2){ // i 0 1 2 3 4 5 6
continue; //sum 0 0 2 2 6 6 6
}
sum += i;
}
console.log(sum);
死循环
由键盘录入数据,返回给至某个变量(返回的数据类型为字符串)var x = prompt();
var x = prompt();
while(true){
if(x>=0 && x<=4){
console.log("执行功能模块");
break;
}else{
console.log("请重新输入合法数据:");
x = prompt();
}
}
闰年问题
(四年一润&&百年不润)||四百年再润
var year = 2008;
if((year%4==0&&year%100!=0)||year%400==0){
console.log("LeapYear");
}else{
console.log("unLeapYear");
}
程序调试
目的
观察代码执行顺序
观察数据
操作
进入检查模式
sources
文件名
打断点
刷新页面
step over
结束调试,取消断点,刷新页面
水仙花数
思路:
1.水仙花数是一个三位数,100-1000
for(var i=100;i<1000;i++){}
2.得到每一个数的个位十位百位数
var i=123;
var a,b,c;
var x=i;
a=i%10; //个位为3
x=parseInt(x/10); //得12
b=x%10; //得十位为2
x=passeInt(x/10) //得1
c=x%10; //得百位为1
3.用每一位得立方和相加比较该数本身
i==a*a*a+b*b*b+c*c*c -->
<script>
var x;
var a,b,c;
for(var i=100; i<1000; i++){
x = i;
a = x%10;
x = parseInt(x/10);
b = x%10;
x = parseInt(x/10);
c = x%10;
if(i == a*a*a + b*b*b + c*c*c){
console.log(i);
}
}
</script>