04.条件语句、循环语句

条件语句、循环语句

条件语句

if(条件) {
    执行语句  // 条件成立才执行
}

if(1 > 0) {
    document.write("11");
}

if(1 > 0 && 8 > 9) {  // 并且:一假即假
    document.write("11");
}

if(1 > 0 || 8 > 9) {  // 或者:一真即真
    document.write("11");
}

var scope = parseInt(window.promp('input'));  //执行之后会弹窗提示输入内容(分数)
document.write(scope);  // 打印结果就是输入的值
  1. 90-100 优秀
  2. 80-90 良好
  3. 70-80 一般
  4. 60-70 及格
  5. 60以下 不行啊
if (score  >  90 &&  score < 100) {
    document.write("优秀")
}

if (score  >  80 &&  score <= 90) {
    document.write("良好")
}

if (score  >  70 &&  score <= 80) {
    document.write("一般")
}

if (score  >  60 &&  score <= 70) {
    document.write("合格")
}

if (score < 60) {
    document.write("唉")
}
// 组合
if (score  >  90 &&  score < 100) {
    document.write("优秀")
}else if (score  >  80 &&  score <= 90) {
    document.write("良好")
}else if (score  >  70 &&  score <= 80) {
    document.write("一般")
}else if (score  >  60 &&  score <= 70) {
    document.write("合格")
}else if (score < 60) {
    document.write("唉")
}else {
    document.write("error")
}

循环语句

for循环

      执行1     判断2 执行3   // 一直重复,直到2不成立
        ↓         ↓     ↓
for (var i = 0; i < 10; i++) {
    document.write('a');  // 把a循环执行十遍,这是正常写法
}
// 分解:
1.var i =0
2.if(i < 10) {
    document.write('a');
}
3.i++;  // -->i = 1;
4.if(i < 10) {
    document.write('a');
}
// (重复执行3、4步,直到i不等于10)

// 写法二
var i = 0for (; i < 10;) {
    document.write('a');
	i++}
// 写法三
var i = 1var count = 0;
for (; i;) {
    document.write('a'); 
    count ++;
    if(count == 10) {
        i = 0;  // 0就是假 会暂停循环
    }
}
// 写法四
var i = 1// var count = 0;
for (; i;) {
    document.write('a'); 
    // count ++;
    i++;
    // if(count == 10) {
    if(i == 11) {
        i = 0;  // 0就是假 会暂停循环
    }
}
// 打印0-9
for (var i = 0; i < 10; i++) {
    document.write(i);  
}
// 求和
var count = 0;
for (var i = 0; i < 10; i++) {
    count += i;
    document.write(count);  
}
// 打印能被3整除,并且能被5整除的数
for (var i = 0; i < 100; i++) {
    if(i % 3 ==0 || i % 5 ==0 || i % 7 ==0) {
     document.write(i + " ");     
    }
}
// 打印0-99
for (var i = 0; i < 100; i++) {
    document.write(i + " ");  
}

// 方法二 倒着打
var i = 100;
for (; i--; ) {  //能打印出0是因为i=1的时候判断成立 判断完i变成0(因为--是先执行后赋值)
    document.write(i + " ");  //i变成0时为false 停止循环
}

while循环

// for循环打印0-9
var i =0;
for(;i < 10;) {
    document.write(i);
    i ++;
}

//while循环打印0-9 (while循环是for循环的简化版)
while(i<10) {
    document.write(i);
    i ++;
}
死循环
// 死循环  判断条件一直为真
while(1) {
    documrnt.write(i);
    i ++;
}
// 100以内是7的倍数或者含7的数
var i = 0;
while(i < 100) {
    if(i % 7 == 0 || i % 10 ==7) {
        document.write(i + " ");
    }
    i ++;
}

do while循环(不常用)

// 先执行一次,再判断语句是否成立
var i = 0;
do {
    document.write("a"); 
    i ++;
}while(i < 10)

练习

  1. 计算2的n次幂,n可输入,n为自然数。

    var n = parseInt(window.promp('input'));
    var mul = 1;
    for(var i = 0; i < n;i++) {
        mul *= 2;
    }
    document.write(mul);
    
  2. 计算n的阶乘,n可输入。

    var n = parseInt(window.promp('input'));
    var mul = 1;
    // i = 0;i <=n; 循环圈数不变
    for(var i = 1; i <= n;i++) {
        mul *= i;
    }
    document.write(mul);
    
  3. 著名的斐波那契数列。
    1 1 2 3 5 8输出第n项

    // 第n位的值等于(n-1)+(n-2)
    f  s  t                //f第一位 s第二位  t第三位  游标一直往前移
    1  1  2  3  5  8
       f  s  t
    var n = parseInt(window.promp('input'));
    var first = 1,
        second = 1,
        third;
    // 不加if循环也可以直接让third初始值为1
    if(n > 2) {
        for(var i = 0, i < n - 2; i ++) {
        third = first + second;
        first = second;
        second = third;
    	}
    	document.write(third);
    }else {
        document.write(third);
    }
    
  4. 编写一程序,输入一个三位数的正整数,输出时反向输出。
    如:输入456,输出654.

    // 取余除减
    var n = parseInt(window.promp('input'));
    a = n % 10;  // a=6
     n -= a;   // n=450
     c = n % 100;   // c=50
     d = n - (n % 100);  // n=450-50=400
     e = n / 100;  // e=4
     f = a * 100 + c + e;
     document.write(f);
    
  5. 输入a,b,c三个数字,打印出最大的。

    if(a > b && a > c) {
        document.write(a);
    }else if(b > a && b > c) {
        document.write(b);
    }else {
        document.write(c);
    }
    
    // 方法二:
    if(a >b) {
        if(a > c) {
            document.write(a);
        }else{
            document.write(c);
        }
    }else{
        if (b > c) {
            document.write(b);
        }else {
            document.write(c);
        }
    }
    
  6. 打印出100以内的质数。

    // 方法一:
    var count = 0; //count也可以放在第二个for循环中
    for(var i = 0; i < 100; i ++) {
        // 看看每一个i是否是质数(从自己开始除到1 看看是不是只有自己和1能被整除)
        for(var j = 1; j <= i ;j ++) {
            if(i % j == 0;) {  // 标记次数为2的就是质数(被自己和1整除)
                count ++;
            }
        }
        if(count ==2) {
            document.write(i + “ ”);
        }
        count = 0;  // 一个值判断完之后初始化count
    }
    
    // 方法二:
    // 100等于:10 *10   4 * 25   2 * 50   1 * 100   2.5 * 40   1.25 * 80
    // 判断完了一个 就不用判断另一个  其实也就是判断10以下的数就好了
    // 判断一个数是否为质数就是判断这个数和10以下的数能整除几次
    var count = 0; //count也可以放在第二个for循环中
    for(var i = 2; i < 100; i ++) {
        for(var j = 1; j <= Math.sqrt(i) ;j ++) {  // 循环圈数变少
            if(i % j == 0;) {
                count ++;
            }
        }
        if(count ==1) {
            document.write(i + “ ”);
        }
        count = 0;  // 一个值判断完之后初始化count
    }
    

    条件语句补充

switch case

// 找到满足条件的就打印往后的语句
var n =3;   // n=a 输出abc  n=true 输出bc  n=3输出c  添加break之后就不会这样了
switch(n) {
    case "a":
        console.log('a');
        break;  // 只会打印满足条件的行(找到满足的就会跳出循环)
    case "true":
        console.log('b');
        break; 
    case 3:
        console.log('c');  // 打印结果是c
        break; 
}
var date = window.prompt('input');
switch(date) {
    // 工作日都打印working(没有break)
    case "monday":
    case "tuesday":
    case "Wednesday":
    case "thursday":
    case "friday":
        console.log('working');
        break; 
    case "周六":
    case "周日":
        console.log('relaxing');
        break; 
}

break(终止循环)

// break必须放在循环里面
var i = 0;
while(1) {
    i ++ ;
    console.log(i);
    if(i > 100) {
        break;  // 终止循环
    }
}

var i = 0;
var sum = 0;
for(i = 0; i < 100; i ++) {
    sum += i;
    console.log(i);
    if(sum > 100) {
        break;
    }
}

continue

for(var i = 0; i < 100; i++) {
    if(i % 7 ==0 || i % 10 == 7) {
        continue;  // 继续(会终止本次循环来进行下一次循环,也就是不会出现含7和余7的数)
    }
    console.log(i);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好学习_fighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值