分支结构
if条件语句 :if(条件判断成立){执行语句}条件是true才执行,是false不执行。
eg:
var num1 = 100;
var num2 = 200;
if(num2>num1){
console.log("大于")
}
else if语句 : else if(条件){执行语句}满足第一个条件后不会执行第二个条件。
var num1 = 100;
var num2 = 200;
if(num2>num1){
console.log("大于")
}else if{
console.log("小于")
}
查看分数
var score=Number(prompt('请输入您的成绩'));
if(isNaN(score)){//如果是true就不是数字
if(score > 90 && score <=100){
console.log('a');
}else if(score > 80){
console.log('b');
}else if(score > 70){
console.log('c');
}else if(score >= 60){
console.log('d');
}else{
console.log('omg');
}
}else{
console.log('输入有误');
}
else语句 作补集,else接着别的条件,表示除了以上条件别的情况
eg:
var age = 18;
if(age >= 18){
console.log("成年")
}else{
console.log("未成年")
}
switch case switch(条件){case1:执行语句;break;case2:执行语句;break;…},case的值可以是任何形式(case1,case a ,case true…)
eg:var n = 2;
switch(n){
case 'a':
console.log('a');
break;
case 2:
console.log('b');
case;
}
案例:一年中各月份的天数
var month = parseInt(prompt("请输入月份"));
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log('31day');
break;
case 4:
case 6:
case 9:
case 11:
console.log('30day');
break;
case 2:
console.log('28day');
break;
}
条件会和case结果对比如果完全相同就返回case的语句;
switch case的特点:及其不负责性,当switch找到满足要求的语句后,后面的虽然不判断了但也会把后面的语句返回,此时需要用break(必须放到循环里,放别的地方会报错)终止循环。
continue止本次循环开始下一次循环
求100-200所有奇数的和(用continue)
var sum = 0;
var i = 100;
while(i <= 200){
if(i % 2 == 0){
i++;//不加的话,i始终是100
continue;
}
sum += i;
i++;
}
console.log(sum);
求1-100的累加值,但要跳过各位为3的值;
var sum = 0;
var i = 1;
while(i <= 100){
if(i % 10 == 3){
i++;
continue;
}
sum += i;
i++;
}
console.log(sum);
三元运算符(三目运算符): 条件判断 ? 是 :否.
大多数情况if-else语句都可用三元表达式
eg:var num = 1 > 0 ? 2 + 2 : 1 + 1;num ——>4
循环结构
for循环 for(语句1;语句2;语句3){循环体}
小例子:打印十个a
㈠
for(var i = 0;i < 10;i ++){
document.write('a');
}
㈡
var i = 1;
var count = 0;
for(;i;){
document.write('a');
count ++;
if(count == 10){
i=0;
}
}
案例:三角形的五角星
for(var i = 0;i <= 5;I ++){//控制行数
for(var j = 0; j <= i ;j++){//控制每行多少个★
document.write('★');
}
document.write('<br/>');
}
案例:乘法口诀表
document.write("<table border='1' cellpaddong='0' cellspacing='0'>");//表格
for(var i = 1;i <= 9;i++){
document.write("<tr>");//行
for(var j = 1;j <= i;j++){
document.write("<td>");//单元格
document.write(i + "*" + j + "=" + i * j);
document.write("</td>");
}
document.write("</tr>");
}
document.write("</table>");
案例:本金10000存入银行,利率是千分之三,每过一年本金和利息相加作为新的本金,
计算五年后获得的本金是多少?
var money = 10000;//本金
var rate = 0.003;//利率
for(var i = 0;i < 5;I++){
money += money*rate;
}
console.log(money);
斐波那契数列(黄金分割数列):已知一对兔子每月可以生一对小兔子,而一对兔子从此出生后三个月可以生一只
兔子;假设一年内没有死亡,那么一对兔子一年内能繁衍多少只兔子(规律1,1,2,3,5,8)
var num1 = 1;//第一个月
var num2 = 2;//第二个月
var sum = 0;
for(var i = 3;i <= 12;i++){
sum = num1 + num2;
num1 = num2;
num2 = sum;
}
console.log(sum);
while循环 while(条件){循环体;计数器++}与for类似
打印十个a
var i = 0;//计数器
while(i <10 ){
document.write('a');
i++;//计数器
}
计算一百以内所有数的和
var sum = 0,
i = 0;//计数器
while(i < 100){
sum += i;
i ++;
}
console.log("和为:" + sum);
求6的阶乘
var jc = 1;
var i = 1;//计数器
while(jc <= 6){
jc *= i;
i ++;
}
console.log(jc);
求1-100偶数的和
var sum = 0;
var i = 1;//计数器
while(i <= 100){
if(i % 2 == 0){
sum += i;
}
i++;
}
console.log(sum);
求1-100的奇数的和
var sum = 0;
var i = 1;
while(i <= 100){
if(i % 2 != 0){
sum += i;
}
i++;
}
do while循环 do{循环体}while(条件);不管是否符合条件都会执行一次
先执行一次循环体,让背后判断条件是否成立,不成立则跳出循坏体
输出10次a
var i = 0;
do{
console.log('a');
i ++;
}while(i < 10);
例子:问用户我帅吗?如果是n就一直问,不是就说您真有眼光
do{
var result = parsInt(prompt(您觉得我帅吗?y/n))
}while(result != n);
console.log('您真有眼光‘);