流程控制:代码的执行过程

一、顺序结构:丛上到下从左到右执行代码的结构(不是很严谨)

二、分支结构:根据不同的情况执行对应代码

        1.一个分支使用if语句;

        2.两个分支使用if--else语句或者三元表达式;

        3.多个分支使用if--else if---else....语句(针对范围的判断时使用)或者switch--case语句(针对具体值的判断时使用);

三、循环结构:重复做一件事情

    1.while语句

    2.do--while语句

    3.for语句


分支结构语法:

if语句:

if(/*条件表达式*/){

    //执行语句
}

if(/*条件表达式*/){

    //成立执行语句
    
}else{

    //否则执行语句
}

if(/*条件表达式1*/){

    //成立执行语句    
}else if(/*条件表达式2*/){

    //条件2成立执行语句    
}else if(/*条件表达式3*/){

    //条件3成立执行语句   
}else{

    //前面条件都不成立时执行语句
}
案例:    
1、求两个数的最大数
var num1=10;
var num2=20;
if(num1>num2){
    console.log("num1最大");
}else {
    consolo.log("num2最大");
}  
  
2、判断一个数是偶数还是奇数
 var num = parseInt(prompt("请您输入一个整数"));//输入不是数字时有BUG
 if(num%2==0){
     console.log("您输入的是偶数!");
 }else{
     console.log("您输入的是奇数!");
 } 
   
3、分数转换,把百分制转换成ABCDE   <60  E  60-70 D  70-80 C  80-90 B  90 - 100 A
var sorce = parseInt(prompt("请您输入你的考试成绩"));
if(sorce>90){
    console.log("A");
}else if(sorce>80&&sorce<=90){
    console.log("B");
}else if(sorce>70&&sorce<=80){
    console.log("C");
}else if(sorce>60&&sorce<=70){
    console.log("D");
}else{
    console.log("E");
}

4、判断一个年份是闰年还是平年      闰年:能被4整除,但不能被100整除的年份 或者 能被400整除的年份
var year = parseInt(prompt("请您输入年份"));
if(year%4==0&&year%100!==0||year%400==0){
    console.log("您输入的是闰年");
}else{
    console.log("您输入的是平年");
}


三元运算符:条件表达式 ? 执行语句1 : 执行语句2
案例:是否年满18岁
var age = parseInt(prompt("请输入您的年龄"));
var result = age>=18 ? "您已成年" : "您未成年";
console.log(result);

switch-case语句:
switch(表达式){
    case 常量1:
        语句1;
        break;
        
    case 常量2:
        语句2;
        break; 
         ......
    case 常量n:
    语句n;
    break;
    default:
    语句;
    break;      
}
注意:break可以省略,如果省略,代码会继续执行下一个case;
      最后一个default也可以省略;
      switch语句在比较时使用的是全等操作符,因此不会发生类型转换
      (如:字符串"10",不等于数值10。
案例:
1、获取一个人的成绩的级别,如果是A级则显示90到100直接的分数
var jiBie = prompt("请输入大写字母ABCDE中的任意一个字母");
switch(jiBie){
    case "A" :
        console.log("您的分数为90到100之间");
        break;
    case "B" :
        console.log("您的分数为80到90之间");
        break; 
    case "C" :
        console.log("您的分数为70到80之间");
        break;   
    case "D" :
        console.log("您的分数为60到70之间");
        break;
    default:
        console.log("您的分数小于60");
        break;
}

2、根据月份显示对应的天数
var month = parseInt(prompt("请您输入月份"));
switch(month){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        console.log("您输入的月份有31天!");
        break;
    case 2:
        console.log("您输入的月份有28天!");
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        console.log("您输入的月份有30天");
        break;
    }

循环结构语法:

while循环语句语法:
当循环条件为true时执行循环体,当循环条件为false时结束循环。

while(循环条件){

    //循环体
}

案例:
1、计算1-100之间所有数的和
var i=1;
var sum=0;
while(i<100){
    sum+=i;
    i++;
}
console.log(sum);

2、打印100以内是7的倍数的数字
var i=1;
while(i<=100){
    if(i%7==0){
    console.log(i);
    }
    i++;
}



do...while语句语法:先执行循环体一次在判断循环条件,循环条件为true则继续循环,否则跳出循环。
do {
    //循环体
    
}while(循环条件);
案例:
1、求100以内所有3的倍数的和
var i=1;
var sum=0;
do{
    if(i%3==o){
    sum+=i;
    }
    i++;
}while(i<100);
console.log(sum);


for循环语句:while和do...while一般用来解决无法确认次数的循环。
             for循环一般在循环次数确定的时候比较方便
for(初始表达式1;判断表达式2;自增表达式3){
    //循环体4
}
//执行顺序:1243  ----  243   -----243(直到循环条件变成false)。
案例:
1、打印9*9乘法表
document.write("<table border='1px solid #000' cellpadding='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>");

2、有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。
已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。
假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?
(兔子的规律为数列,1,1,2,3,5,8,13,21..)
var mun1=1;
var mun2=1;
var sum=0;
for(var i=3;i<=12;i++){
    sum=mun1+mun2;
    mun1=mun2;
    mun2=sum;
}
console.log(sum+"对兔子");

布尔类型的隐式转换:流程控制语句会把后面的值隐式转换成布尔类型。

转换成true  非空字符串、非0数字、true、任何对象 
转换成false 空字符串、0、false、null、undefined
例子:
var message;
// 会自动把message转换成false
if(message){
    alert("我执行了");
}

break和continue

//break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)
//continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
列1:求整数1~100的累加值,但要求碰到个位为3的数则停止累加
    var sum1=0;
    for(var i=1;i<=100;i++){
        if (i%10==3){
            break;
        }
        sum1+=i;
    }
    console.log(sum1);
// 求整数1~100的累加值,但要求跳过所有个位为3的数
    var sum=0;
    for(var i=1;i<=100;i++){
        if (i%10==3){
            continue;
        }
        sum+=i;
    }
    console.log(sum);


标签: JavaScript