一、闰年问题
(四年一闰&&百年不闰)||四百年再闰
if((四年一闰&&百年不闰)||四百年再闰){
}
var nian = 2023;
if((nian%4==0&&nian%100!==0)||nian%400==0){
console.log('今年是闰年')
}else{
console.log('今年不是闰年')
}
二、选择分支
1.if
适用范围:任何时候都能用if,if支持范围判断和等值判断,通常是范围判断
2.三目运算符(条件运算符)
适用范围:一些简单的双分支,可以使用 三元运算符(三元表达式),写起来比 if else双分支 更简单
符号:? 与 : 配合使用
语法:表达式1 ? 表达式2 : 表达式3
表达式1的结果为布尔值,如果条件为真,则执行表达式2,如果条件为假,则执行表达式3
// 将a,b里面最大的值给c
var a, b , c;
a = 123;
b = 456;
c=a>b ? a : b;
console.log(c);
// 将d,e,f,里面最大的值给g
var d , e, f , g;
d=1;
e=23;
f=5;
g=d>e?d:e;
g=g>f?g:f;
console.log(g);
3.switch
适用范围:支持等值判断
1.被匹配值必须是一个常量
2.switch只匹配一次,然后顺序执行
3.break跳出switch语句
4.default类似于else
5.匹配值和被匹配值数据类型应该一致
6.语法:switch(匹配值){ case 被匹配值1: 表达式1; case 被匹配值2: 表达式2; ... }
var fen = 99;
// switch (fen) {
// case 99:
// console.log('A')
// case 98:
// console.log('A')
// }//AA
switch (parseInt(fen / 10)) {
case 10:
case 9:
console.log('A');
break;
case 8:
console.log('B');
break;
case 7:
console.log('C');
break;
case 6:
console.log('D');
break;
default:
console.log('E')
}//A
4、选择嵌套
选择的嵌套:一个if条件修饰的语句,还是一个if
建议不要超过3层(极限是5层)
var a = 1,b = 2, c = 3;
if(a>0){
if(b>0){
if(c>0){
console.log('今天是2023年4月6日')
}
}
}
//等价于
if(a>0&&b>0&&c>0){
console.log('今天是2023年4月6日')
}
三、循环语句
循环的四要素
1.循环变量的初始化
2.循环条件
3.循环体
4.使循环趋近于结束的条件
1.while
适用场景:不知道循环次数用while
while的执行顺序:
先判断条件,条件为真,则执行循环体,执行完循环体后,会再次判断条件的真假,为真则继续执行,为假则跳出循环
语法:while(条件表达式){ }
// 1到100求和
//1.循环变量的初始化
var i=1;
var num=0 ;
while (i<=100){//2.循环条件
//3.循环体
num=num+i;//num+=i
//4.使循环趋近于结束的条件
i++;
}
console.log(num)
2.do...while
适用场景:至少需要执行一次的循环用do...while
while与do...while的区别:
当首次条件成立时,这俩没区别。
当首次条件不成立时,do...while要比while多执行一次循环体。
语法:
do{
循环体;
}while(表达式);
// 1到100求和
//1.循环变量的初始化
var i=1;
var num=0 ;
do{//3.循环体
num += i;
//4.使循环趋近于结束的条件//num+=i
i++;
}while (i<=100);//2.循环条件
console.log(num)
3.for
适用场景:知道循环次数,用for
语法:
for(表达式1;表达式2;表达式3)
{
循环体4;
}//表达式1初始化循环变量,表达式2判断循环条件,表达式3改变循环变量的值。
循环执行的顺序:1243243243...
// 1到100求和
var i;
var num=0;
for(i=1;i<=100;i++){
num += i;
}
console.log(num)
4.循环的嵌套
1.一个循环内包含完整的另一个循环语句。
2.被包含的循环语句叫内循环,包含别的循环的循环语句叫外循环。
3.外循环每执行一次循环,内循环都会完全执行所有循环次数。
4.循环嵌套的总执行次数是外循环次数乘以内循环次数。
5.循环嵌套不要超过3层
//九九乘法表
// j:控制行数
// i:控制个数
// 所以--->j控制i
for(j=1;j<=9;j++){
for(i=1;i<=j;i++){
document.write(i+'x'+j+'='+i*j+' ');
}
document.write('<br>')
}
for (let i = 1; i <= 6; i++) {
for (let j = 1; j <= 6 - i; j++) {
document.write(" ")
}
for (let k = 1; k <= 2 * i - 1; k++) {
document.write("* ")
}
document.write("</br>")
}
for (let i = 1; i <= 5; i++) {
for (let j = 1; j <= i; j++) {
document.write(" ")
}
for (let k = 1; k <= 11 - 2 * i; k++) {
document.write("* ")
}
document.write("</br>")
}
5.break与contiune
break:跳出本层循环
continue:跳出本次循环
//break:跳出本层循环
while(true){
while(true){
console.log("heihei");
break;
}
break;
}
// continue:跳出本次循环
for(var i=1; i<=100; i++){
if(i%3==0){
continue;
}
console.log(i);
}