JS循环辅助语句

今天主要就几天前写的JS循环结构的一些补充。主要是JS循环辅助语句和循环的嵌套。今天还是主要案例为主,其中有些理论知识,希望能帮助你。

1、循环辅助语句

break:跳出所在的switch或者循环结构

案例1 素数

思路:素数:对于自然数,如果它只有1和本身之外在没有其他因子

1、提示并接受判断的数n的输入
 2、在[2,n-1]之间去寻找因子
 3、如果找到则设置找到标志,并提前结束
 4、根据标志输出相应的结果


var n = Number(prompt("请输入一个自然数"));
var m = Math.ceil(Math.sqrt(n));//根据相关数学定理,查找范围可缩小至[2,sqrt(n)]
var found = false;//找到因子的标记
for(var i=2; i<=m; i++){
    if(n%i == 0){
        found = true;
        break;//找到则提前结束
    }
}
alert(found?"不是素数":"是素数");


continue:结束本次循环,开启下一次循环。

案例2:对100以内既不是3的倍数也不是5的倍数的数的和

 思路一:1、在[1,100]范围内的每个数逐个判断2、如果满足条件就累加3、输出和

var sum = 0;
for(var n=1; n<=100; n++){
    if(n%3!=0 && n%5!=0){
        sum += n;
    }
}
alert(sum);
思路一是常规思路,只要满足条件就往上累加,现在换另一种思路。

思路二:
1、在[1,100]范围内每个数重复步骤2、3
2、如果不满足条件就放过
3、累加
4、输出和

var sum = 0;
for(var n=1; n<=100; n++){
    if(n%3==0 && n%5==0){
        continue;//结束本次循环,开启下一次循环(虽然本意是继续,但在这里表示 结束本次循环)
    }
    sum += n;
}
alert(sum);
思路二的好处:结构清晰。也就是我们在进行数据处理之前,先把各种不符合条件的情况先排除。然后在处理符合条件的情况(这个一般是程序的主体部分)。

如果循环体的主体代码的执行有两个前提条件,常规思路是怎么写的,如果循环体主体代码较多,则该程序的可读性就较差。

使用break和continue的区别:使用break是跳出这个循环,就算之后还有代码没有运行,它也会忽略不执行;而continue会直接从半路结束本次循环,但是会开启下次循环,不像break是直接跳出了这个循环体,continue会执行之后的代码。
2、循环的嵌套

为什么要有循环嵌套呢?因为一件事情的内容需要重复做,而且这个事情要反复做。

什么时候用循环的嵌套:

(1)两者没有制约关系

(2)两者有制约关系

一般有行数有列数并且两者之间存在关系的时候使用循环的嵌套。

案例1::直角三角形的输出

for(var i=1; i<8; i++){//控制行
    for(var j=1; j<i+1; j++){//控制列
        document.write("*");
    }
    document.write("</br>");//每行换行
}
案例2:等腰三角形的输出

//1、定义一个等腰三角形的行数
var num = 10;
//每一行的空格数为总行数减去当前是第几行
//每一行的星星个数为当前行*2-1
//循环条件行数小于等于10
for(var i=1; i<=num; i++){//控制有多少行
    for(var j=num-i; j>0; j--){//控制一行中有多少空格数
        document.write("*");
    }
    for(var k=1; k<=i*2-1; k++){//控制星星个数
        document.write("%");
    }
    document.write("</br>");
}
案例3:输出菱形

var row = Number(prompt("请输入行数:"));
for (var n=1; n<=2*row-1; n++) {//控制行数
    //输出row-i是空格,输出2i-1个,输出换行
    var blanks = Math.abs(row-n);//空格的个数
    var stars = 2*row-1-2*Math.abs(n-row);//星号的个数
    for (var i=1; i<=blanks; i++) {//控制空格
        document.write("_");
    }
    for(var i=1; i<=stars; i++){//控制星数
        document.write("*");
    }
    document.write("</br>");//给每行换行
}
就用这三个案例来显示使用循环的嵌套。

通过这一系列的学习,是我觉得,计算机真的是一门综合性的技术,值得学习学习的东西非常多,所以需要更加是努力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值