循环语句

循环包含三大语句-----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/>")
}
//执行次数:外层循环次数*内层循环次数
示例

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);

while,do while,for循环语句的更多相关文章

  1. 【python之路4】循环语句之while

    1.while 循环语句 #!/usr/bin/env python # -*- coding:utf-8 -*- import time bol = True while bol: print '1 ...

  2. python之最强王者(3)——变量,条件、循环语句

    1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...

  3. #9.5课堂JS总结#循环语句、函数

    一.循环语句 1.for循环 下面是 for 循环的语法: for (语句 1; 语句 2; 语句 3) { 被执行的代码块 } 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块) ...

  4. 详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

  5. 【java开发】分支语句、循环语句学习

    一.Java分支语句类型 if-else 语句 switch 关于if-esle语句可以拆分为三种 if语句 if(条件){语句块;} if-else语句if(条件语句){语句块;} if-else ...

  6. python3循环语句while

    Python的循环语句有for和while语句,这里讲while语句. Python中while语句的一般形式: while 条件判断 : 语句 需要注意冒号和缩进.另外,注意Python中没有do. ...

  7. 20.SqlServer中if跟循环语句

    --if语句declare @i int begin print @i end else --循环语句 declare @i int begin insert into grade(classname ...

  8. Python学习【第五篇】循环语句

    Python循环语句 接下来将介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次. Python ...

  9. iOS -Swift 3.0 -for(循环语句用法)

    // // ViewController.swift // Swift-循环语句 // // Created by luorende on 16/12/08. // Copyright © 2016年 ...

  10. Python--While循环语句

    Python While循环语句 Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件: 执行语句 ...

随机推荐

  1. 04C++核心编程(二-泛型编程)

    Day08 笔记 1 函数模板 1.1 泛型编程 – 模板技术 特点:类型参数化 1.2 template< typename T > 告诉编译器后面紧跟着的函数或者类中出现T,不要报错, ...

  2. Public Round #1

    传送门 [PR #1]删数 题意:写的很清楚了,略 思路: 首先转化为差分数组,两个连续数相同,删掉,乘二放进去. 发现能互相转化的两个数,符号,值\(/lowbit\)都一样. 把能相互转化的数归为 ...

  3. 《Unix 网络编程》11:名字和地址转换

    名字和地址转换 系列文章导航:<Unix 网络编程>笔记 域名系统 简介 域名系统主要用于主机名字和 IP 地址之间的映射.主机名可以是: 简单名字,如:centos01 全限定域名(FQ ...

  4. 一个 curl 配置引发的惨案

    问题 这两天想装新版本的 node,发现 nvm 一直报下面这个错误.我反复 Google 了,但是并没有找到一条我能用的. 痛苦 我起初一直怀疑是我用的 zsh-nvm 抽疯,所以今天有空就把它还有 ...

  5. STM32时钟系统配置程序源码深入分析

    一.分析程序的目的 最近我在移植实时系统是遇到了一些问题,所以决定深入了解系统时钟的配置过程,当然想要学好stm32的小伙伴也有必要学习好时钟系统的配置,所以我将学习的过程再次记录,有写得不好的地方, ...

  6. Linux查看系统参数配置

    Linux查看系统参数 1.查看内存(以GB为单位) [root@rac1 ~]# free -g total :内存总数,物理内存总数 used :已使用内存 free :空闲的内存数 shared ...

  7. JVM学习笔记-从底层了解程序运行(二)

    解决JVM运行中的问题 一个案例理解常用工具 测试代码: /** * 从数据库中读取信用数据,套用模型,并把结果进行记录和传输 */ public class T15_FullGC_Problem01 ...

  8. OpenLayers入门(一)

    OpenLayers简介 OpenLayers(https://openlayers.org/)是一个用来帮助开发Web地图应用的高性能的.功能丰富的JavaScript类库,可以满足几乎所有的地图开 ...

  9. mysql备份数据库linux

    备份数据库 问题描述: ​ 我们用的是mysql,以今天遇到的情况为例,我们是在两台服务器上要搭相同的平台,部署完成后页面报错,发现是数据库的问题,我们打开数据库查看,确实数据库中少建一个wind数据 ...

  10. 全国土壤阳离子交换量CEC空间分布数据

    数据下载链接:百度云下载链接​ 土壤阳离子交换量,简称CEC,是指土壤胶体所能吸附各种阳离子的总量.土壤阳离子交换量 cation exchange capacity 即CEC 是指土壤胶体所能吸附各 ...