JavaScript学习笔记三——分支结构,循环结构

一、分支结构

(一)if

1.条件成立,执行语句,否则啥也不做

if(条件){

语句

}

<script>
   if(5>3){
    console.log("正确");
   }

   if(5<3){
    console.log("错误");
   }
</script>

2.条件成立,执行语句1,否则执行语句2

if(条件){

语句1;

}else{

语句2;

}

<script>
   if(5<3){
    console.log("正确");
   }else{
    console.log("错误");
   }
</script>

3.条件1成立,执行语句1,不成立的情况有多种

if(条件1){

语句1;

}else if(条件2){

语句2;

}else{

语句3;

}

<script>
    var num = 190;
    if (num > 200) {
        console.log("11111");
    } else if (num > 100) {
        console.log("222");
    } else {
        console.log("333");
    }
</script>

(二)if案例

  1. 判断奇数偶数

能整除2就是偶数,否则就是奇数

n%2==0 偶数

n%2==1 奇数

注:n是一个数字

//方法一
<script>
    var n=5;
    if(n%2==0){
        console.log("是偶数");
    }else{
        console.log("是奇数")
    }
</script>
//方法二   布尔类型中  1为true 0为false
<script>
    var n=6;
    if(n%2){
        console.log("是奇数");
    }else{
        console.log("是偶数")
    }
</script>
//方法三  取反 1为false 0为true
<script>
    var n=35;
    if(!(n%2)){
        console.log("是偶数");
    }else{
        console.log("是奇数")
    }
</script>
  1. 输出成绩等级

<script>
    var score=66;
    if(score>=90){
        console.log("优秀");
    }else if(score>=80&&score<90){
        console.log("良好");
    }else if(score>=60){
        console.log("及格");
    }else{
        console.log("不及格");
    }
</script>
<script>
    //键盘手动输入
    var score=+prompt("请输入成绩:");
    if(score>=90){
        console.log("优秀");
    }else if(score>=80&&score<90){
        console.log("良好");
    }else if(score>=60){
        console.log("及格");
    }else{
        console.log("不及格");
    }
</script>
  1. 判断闰年

能被4整除并且不能被100整除,或者能被400整除

<script>
    var year = +prompt("请输入年份:");
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        console.log("该年是闰年");
        console.log(`${year}是闰年`);//模板字符串
    } else {
        console.log("该年是平年");
        console.log(`${year}是平年`);//模板字符串
    }
</script>

(三)switch

switch(变量){

case 情况1:语句1;break;

case 情况2:语句2;break;

...

default:其它语句;

}

default:case没有列举到的其它情况

break:跳出它所在的switch和循环代码块

<script>
    var day=+prompt("请输入数字(1-7):");
    switch(day){
        case 1:console.log("星期一");break;
        case 2:console.log("星期二");break;
        case 3:console.log("星期三");break;
        case 4:console.log("星期四");break;
        case 5:console.log("星期五");break;
        case 6:console.log("星期六");break;
        case 7:console.log("星期日");break;
        default:console.log("请输入正确的数字");
    }
</script>

如果不加break

<script>
    var day=+prompt("请输入数字(1-7):");
    switch(day){
        case 1:console.log("星期一");
        case 2:console.log("星期二");
        case 3:console.log("星期三");
        case 4:console.log("星期四");
        case 5:console.log("星期五");
        case 6:console.log("星期六");
        case 7:console.log("星期日");
        default:console.log("请输入正确的数字");
    }
</script>

(四)switch案例

  1. 超市优惠,满200减30,满100减20,满50减10

<script>
    var money = +prompt("请输入商品总金额:");
    var youhuimoney;//优惠后的金额
    switch (true) {
        case money >= 200: console.log(youhuimoney = money - 30); break;
        case money >= 100 && money < 200: console.log(youhuimoney = money - 20); break;
        case money >= 50 && money < 100: console.log(youhuimoney = money - 10); break;
        default: console.log("无优惠");
    }
</script>
  1. 输出每个月有多少天,不考虑闰年

遇到break才会跳出switch

<script>
    // 输出每个月有多少天,不考虑闰年
    var month=+prompt("请输入月份");
    switch(month){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:console.log("该月有31天");break;
        case 4:
        case 6:
        case 9:
        case 11:console.log("该月有30天");break;
        case 22:console.log("该月有28天");break;
        default:console.log("请输入正确的月份");
    }
</script>
  1. 成绩的等级

<script>
    var score=+prompt("请输入成绩(0-100)");
    var score1=parseInt(score/10);//得到成绩的十位数
    switch(score1){
        case 9:console.log("优秀");break;
        case 8:
        case 7:console.log("良好");break;
        case 6:console.log("及格");break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:console.log("不及格");break;
        case 10:console.log("满分");break;
        default:console.log("请输入正确的成绩");
    }
</script>

二、循环结构

(一)while

当条件满足时,就执行代码,一旦不满足了就不执行了

while(条件){

满足条件时执行的代码;

}

<script>
    var num=0;
    while(num<10){
        console.log(num);
        num++;
    }
    //如果num>=10跳出循环
</script>

(二)while案例

  1. 1到100的和

<script>
    var num=1;
    var sum=0;
    while(num<=100){
        sum+=num; //sum=sum+num
        num++;
    }
    console.log("1~100的和为",sum);
</script>
  1. 求一个数的阶乘

<script>
    var n=5;
    var sum=1;
    while(n>0){
        sum*=n;
        n--;
    }
    console.log("n的阶乘为",sum);
</script>

(三)do...while

先不管条件,先执行一次代码,再考虑条件是不是满足,如果满足,继续循环,否则跳出循环

do{

执行的代码;

}while(条件)

<script>
   do{
    console.log("你好你好");
   }while(false)//false怎样都不成立
</script>

(四)do...while案例

  1. 1到100的和

<script>
    var n = 1;
    var sum = 0;
    do {
        sum += n;
        n++
    } while (n <= 100)
    console.log(sum);
</script>

(五)for

for(1. 准备工作;2. 条件判断;4. 收尾工作){

//3. 做事

}

先执行准备工作,然后执行条件判断,如果条件成立,就做事,再执行收尾工作;接着再判断条件是否成立 ;如果成立,继续循环,否则退出循环

<script>
    for(var i=0;i<10;i++){
        console.log(i);
    }
</script>

(六)for案例

  1. 打印1000~2000的闰年

<script>
    for(var n=1000;n<=2000;n++){
        if(n%4==0&&n%100!=0||n%400==0){
            document.write(`${n} `);
        }
    }
</script>

(七)案例

  1. 求质数

质数:又称为素数,一个大于1的自然数,除了1和它本身不能被其它数整除

<script>
    var n=+prompt("请输入一个自然数");
    var flag=true;//假设所有数都是质数
    //通过循环找到除了1和它本身之外可能出现的因子
    for(var i=2;i<=n/2;i++){
        //判断n是否为质数
        if(n%i==0){
            flag=false;//能进到当前位置,说明不是质数
            break;
        }
    }
    if(flag){//if(flag==true)
        console.log(`${n}是质数`);
    }else{
        console.log(`${n}不是质数`);
    }
</script>
  1. 水仙数

水仙是指一个 3位数,它的每个位上的数字的3次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)

<script>
    var n=+prompt("请输入一个三位数");
    var bai=parseInt(n/100);//百位 153/100=1
    var shi=parseInt(n/10%10);//十位 153/10=15 15%10=5
    var ge=parseInt(n%10);//个位 153%10=3
    var sum=bai*bai*bai+shi*shi*shi+ge*ge*ge;
    if(sum==n){
        console.log(`${n}是水仙数`);
    }else{
        console.log(`${n}不是水仙数`);
    }
</script>
  1. 九九乘法表
<style>
        span{
            display: inline-block;
            width: 80px;
            height: 20px;
        }
</style>
<script>
    for(var i=1;i<=9;i++){//行
        for(var j=1;j<=i;j++){//列
            document.write(`<span>${i}x${j}=${i*j}</span>`);
        }
        document.write("<br>");//换行
    }
</script>
  1. 直角三角形

第一行1个*,第二行2个*,第三行3个*,...,第i行i个*

<script>
    var n=+prompt("请输入总行数:");
    for(var i=1;i<=n;i++){
        for(var j=1;j<=i;j++){
            document.write(`*`);
        }
        document.write(`<br>`);
    }
</script>
  1. 等腰三角形

一共n=5行

第一行4个空,第二行3个空,第三行2个空,...,第i行(n-i)个空

第一行1个*,第二行3个*,第三行5个*,...,第i行(2 * i-1)个*

<style>
        span{
            display: inline-block;
            width: 20px;
            height: 20px;
        }
</style>
<script>
    var n=+prompt("请输入总行数:");
    for(var i=1;i<=n;i++){
        for(var j=1;j<=n-i;j++){
            document.write(`<span></span>`);
        }
        for(var j=1;j<=2*i-1;j++){
            document.write(`<span>*</span>`);
        }
        document.write(`<br>`);
    }
</script>
  1. 菱形

菱形由正三角和倒三角组成,最长的只有一行

<style>
        span{
            display: inline-block;
            width: 20px;
            height: 20px;
        }
</style>
<script>
    var n=+prompt("请输入一个数:");
    //上半部分
    for(var i=1;i<=n;i++){
        for(var j=1;j<=n-i;j++){
            document.write(`<span></span>`);
        }
        for(var j=1;j<=2*i-1;j++){
            document.write(`<span>*</span>`);
        }
        document.write("<br>");
    }
    //下半部分 因为最长的只有一行,所以从第n-1开始
    for(var i=n-1;i>=1;i--){
        for(var j=1;j<=n-i;j++){
            document.write(`<span></span>`);
        }
        for(var j=1;j<=2*i-1;j++){
            document.write(`<span>*</span>`);
        }
        document.write("<br>");
    }
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值