循环

矫情吗;* 2022-06-11 06:58 334阅读 0赞

1循环结构的概念
先开看看生活中的一些场景:
(1)食堂阿姨打菜:接过顾客的餐盘→询问菜品→打菜→递回餐盘,重复以上过程,直到所有顾客的菜打完了。
(2)快递员送快递:查看送件地址→赶往目的地→电话告知收件人→收件人签收→交快递件,重复以上过程,直到所有需要送的快递处理完了。
(3)公交司机……
(4)作业流程……
以上场景都有共同的特点:有条件重复地做一件事,每一次做的事情不同但类似
程序是为了解决实际问题的,实际问题中存在着重复动作,那么程序中也应该有相应的描述,这就是循环

  1. var sum = 0;
  2. var num = 1;
  3. while(num <= 10){
  4. sum += num;
  5. num++;
  6. }
  7. alert(num);

飙到的含义方式要好的多,比如加到10000,只需要吧num<10改成num<10000.
2while循环
While是表示“当……则……”,也就是当某个条件成立时,则一直重复做。(流程图)
(调试工具查看程序运行轨迹以及变量的变化情况)
Do…while循环
Do{重复内容,
为下次循环做准备
}while(条件)

这里写图片描述
这里写图片描述

  1. year = 2009;
  2. var usa = 142562.75;
  3. var china = 49089.82;
  4. while(china < usa){
  5. usa = usa +(usa * 0.02);
  6. china = china + (china * 0.08);
  7. year++;
  8. }
  9. alert(year);

总结一下循环的套路
(1)初始状态
(2)循环条件
(3)重复内容(循环体 要重复做的事情)
(4)为下次循环做准备
这里写图片描述
4循环辅助语句
Break:跳出所在的switch或者循环结构
案例

  1. /*解决思路: * 1.提示并接收判断的数n的输入 * 2.在[2,n-1]之间寻找因子 * 3.如果找到则设置找到的标志,提前结束循环 * 4.根据标志输出相应的结果 * */
  2. var n = Number(prompt("请输入一个自然数"));
  3. var m = Math.ceil(Math.sqrt(n));
  4. var found = false;//找的因子的标记
  5. for(var i=2;i<=m;i++){
  6. if(n%i == 0){
  7. found = true;
  8. break;
  9. }
  10. }if(found == false){
  11. alert("这个数是素数");
  12. }else{
  13. alert("这个数不是素数");
  14. }
  15. /* * 三个关键点: * 1.break;提前结束循环 * 2.标记位; * 3.优化: * 根据定义,找因子的范围为[2,n-1], * 稍微分析一下,最大的因子不会超过n/2, * 即超找范围可缩小至[2,n/2] * 根据数学相关定理,判断范围可进一步缩小至[2,sart(n)] * */
  16. Continue:结束本次循环,开启下一次循环。
  17. 常规思路:
  18. /*对100以内既不是3的倍数也不是5的倍数的数求和 * 思路一: * 1.在[1,100]范围内每个数逐个判断 * 2.如果满足条件就累加 * 3.输出和 * */
  19. var sum = 0;
  20. for(var n=1;n<=100;n++){
  21. if(n%3 != 0 && n%5!=0){
  22. sum = sum + n;
  23. }
  24. }alert(sum);
  25. 另一种思路:不满足就放过:
  26. /*对100以内既不是3的倍数也不是5的倍数的数求和 * 思路一: * 1.在[1,100]范围内每个数逐个判断 * 2.如果不满足条件就放过 * 3.输出和 * */
  27. var sum = 0;
  28. for(var n=1;n<=100;n++){
  29. if(n%3 == 0 || n%5==0){
  30. continue;//结束本次循环
  31. }
  32. sum = sum + n;
  33. }alert(sum);

第二种思路的好处是:结构清晰
也就是我们在进行数据处理之前,先把各种不符合条件地情况排除,然后在处理符合条件的情况(这个一般是程序的主体)
如果循环体的主体代码的执行有两个前提条件,常规思路是这么写的,循环体主体代码较多,该程序可读性较差
换另外一个思路来描述,是这样的
for(……){
If(!条件1){
alert(“错误提示1”);
continue;
}
If(!条件2){
alert(“错误提示2”);
continue;
}
}
5循环的嵌套
为什么有循环的嵌套
因为一件事情的内容在重复做。而且这个事情要反复做。
什么时候用循环的嵌套:
两者没有制约关系
两者有制约关系
一般有行数列数并且两者之间存在关系的时候用循环的嵌套
比如等腰三角形的输出

  1. //1.定义一个等腰三角形的行数
  2. // var num = 10;
  3. //2.每一行的空格数为总行数减去当前是第几行
  4. //3.每一行的星星为当前行num*2-1
  5. //3.循环条件行数小于等于10;
  6. for(var i=1;i<=10;i++){
  7. for(var j=10-i;j>0;j--){
  8. document.write("_")
  9. }
  10. for(var a=1;a<=i*2-1;a++){
  11. document.write("*");
  12. }
  13. document.write("<br>");
  14. }

发表评论

表情:
评论列表 (有 0 条评论,334人围观)

还没有评论,来说两句吧...

相关阅读

    相关 循环

    学习了好几种语句,和循环。基础不好掌握的不是很多。举例如下: 一.if语句 1. salary = int(input("请输入你的工资:")) if

    相关 循环

    1循环结构的概念 先开看看生活中的一些场景: (1)食堂阿姨打菜:接过顾客的餐盘→询问菜品→打菜→递回餐盘,重复以上过程,直到所有顾客的菜打完了。 (2)快递员送快