ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

while,do while,for循环语句

2022-07-30 18:02:32  阅读:126  来源: 互联网

标签:语句 do 示例 while 循环 var


循环语句

循环包含三大语句-----while语句 do while语句 for语句

循环三要素

初始值(初始的变量值)

迭代量(基于初始值的改变)

条件(基于初始值的判断)

while语句
var 初始变量值 = 值

while(条件){
     迭代量
     执行的代码 
}
示例
//打印1-10
var i=1
while(i<=10){
    console.log(i)
     i++
}      //时间复杂度 O(n)
do while(对于while的区别是先做后判断 至少执行一次)
var 初始值= 值

do{
    执行的代码
    迭代量的变化
}while(条件)
示例
//1到100的和
var i=0
var sum=0
do{
   i++
   sum+=1
}while(i<100)
while 和 do while区别
  • while是先判断后执行 ;do while先执行后判断
  • do while最少执行一次; while至少执行0次
  • 常用while来写一些执行多次的内容(最少没规定) do while(规定必须要执行的时候)
for循环(常用)
for(初始值;条件;迭代量){
   执行的代码  //跟if一样如果执行的代码只有一行可以省略{}
}
示例
var sum= 0
for(var i=0;i<=100;i++){
    sum+=i
}
如果for(;;)这样写错了吗?

没错 (里面的内容可以省略以及提出)但省略条件和迭代量是死循环!!!一定要避免!!!

时间复杂度(判断内容执行效率 依照次数计算)

概述:从传统意义上对应的代码时间复杂度越低对应的执行速度越快

O(1) (每行只执行一边遍 )
var i= 0
i++
if(i<10){
    console.log(i)
}
O(logN) (两个值决定 )
var i = 1
while(i<100){
    i*=2   // 由i和2决定
}
O(n) (由对应的值决定)
for(var i = 0;i<100;i++){
    console.log('我执行了'+i+'遍')
}
O(nlogN)(循环嵌套对应的对数阶循环 )
for(var i=0;i<100;i++){
  var j=1
  while(j<100){
      j*=2
  }
}
O(n^2)(双层循环嵌套 )
for(var i = 0;i<100;i++){
  for(var j = 0;j<100;j++){
    console.log('我执行了'+j+'遍')
  }
}

时间复杂度O(1) < O(logN) < O(n) < O(nlogN)< O(n^2)

while的时间复杂度低于for循环(算法的优化可以使用while来替代for)

循环嵌套(一般最多套两层,不然时间复杂度过高)

循环嵌套:一个循环语句内又包含另一个完整的循环语句;
三种循环都可以相互嵌套; 而for循环嵌套for循环的使用会更频繁
示例:打印下方长方形
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
//外层循环控制行 内层循环控制列
var row = 4
var col = 10
for(var i=0;i<row;i++){
    
    var rowStr = ""    //每行的字符串

  var j = 0
  while(j<col){
      j++ 
      rowStr+='*'       //字符串拼接
   }
document.write(rowStr+"<br/>")
}
//执行次数:外层循环次数*内层循环次数
示例

image

for(var i=0;i<5;i++){
//内层的循环条件依赖于外层
var str = ''
for(var j=0;j<=i;j++){
str += '*'
}
document.write(str+"<br/>")
}
break

break 跳出代码块(switch以及循环中,不会跳if)只会跳出当前break循环层,当前循环结束(跳一层)

示例1
// 判断一个数是不是合数。(指自然数中除了能被1和本身整除外,还能被其他的数整除(除0外)的
数。)
var number = prompt()
//判断是否他有可以被除自身和1之外整除的数
for(var i=2;i<number;i++){
   if(number%i==0){
      console.log("当前数为合数");
      break;
   }
}
// 判断一个数是不是素数。(除了1和它本身以外不再有其他的除数整除。)
//得到个数
var count = 0
for(var i=2;i<number;i++){
   if(number%i==0){
      count ++
      break;
   }
}
if(count==0){
   console.log('当前值为素数');
}

示例2
//看代码判断打印的内容
var number //undefined
for(var i=0;i<3;i++){ //i 0 1 2
  for(var j=0;j<i;j++){
     if(i==1 || j>=1){
        number = i*j
        console.log(j);//0 1
        break
        console.log(i);//break后面的内容不会走
  }
}
console.log(number);//3次 undefined 0 2
}
//undefined 0 0 1 2
continue

continue跳过本次循环,开始下一次循环(只能在循环内)

// 1,求整数1~100的累加值,但要求跳过所有个位为3的数。
var sum = 0 //接收对应的累加值
for(var i=1;i<=100;i++){
   if(i%10==3){
      continue //遇到continue跳过本次开始下一次循环
   }
   sum+=i
}
console.log(sum);

image

标签:语句,do,示例,while,循环,var
来源: https://www.cnblogs.com/gujmnlk/p/16535489.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有