标签:do console day3 空格 while 循环 var
一、while循环
循环是重复性做一件事 我们没有办法控制每次循环的时间长度 循环会增大您的程序时间复杂度 不建议无限循环嵌套 一般情况下不会嵌套超过两次 死循环是不会停止的循环,会导致您的电脑内存溢出 从而蓝屏(避免死循环) 循环分为很多种常见有三种 while循环 do while循环 for循环 写法 var 定义初始终 while(布尔类型表达式){ 循环体(迭代 初始值变化 操作) } var i=0//初始值定义 while(i<10){ i++//迭代,如果没有会导致死循环 console.log(i);//操作 }
1~100的和 var res=0 var i=1 放入循环体里面的代码会循环执行,放到外面只执行一次 while(i<=100){ res+=i//将i的值累加给res i++//迭代 } console.log(res);
var i=0 while(++i<=100){//执行101次 res+=i//执行100次 } console.log(res);
循环四要素 初始值 迭代量(不写 死循环) 循环体 条件判断表达式(循环条件)-死循环 while(true){
} 死循环 break 二、do...while循环 while 循环 do做 do while 先做后循环 和while区别 while可能一次都不做 do..while至少做一次 var water=false while(water){ console.log("喝水了"); } do{ console.log("我喝水了"); }while(water)
do..whlie 先做后判断 while先判断后做 var 初始值定义 do{ 循环体 迭代量 }while(布尔表达式)
1-100的和 var num01=100 var sum01=0 do{ sum01+=num01 num01-- }while(num01>0) console.log(sum01); 三、for循环 for 循环是一个比较常用的循环 使用方式 for(初始值 可以省略不写;判断条件;迭代量){ 循环体 } for(i=0;i<10;i++){ console.log(i)//0-9 } var i=0 for(;i<5;i++){ console.log(i);//0-4 }
面试题 下面这种写法是否正确 for(;;){ console.log("你好"); } 死循环 写法正确 var i=0 for(;i<1;){ 死循环 }
练习题 10的阶乘 var res=1 for(var i=1;i<=10;i++){ res*=i } console.log(res)
时间复杂度:代码执行时长 do..while 和while时间复杂度一致(代码执行时长) while循环比for块一倍 while时间复杂度低于for循环
循环嵌套 while嵌套 do{ 外面执行3次 do{ //里面执行3次 }while() }while() 总共执行9次
while(){ 外面执行5次 while(){ 里面执行6次 } }总共执行30次
for(var i=0;i<10;i++){ for(var i=0;i<10;i++){ console.log("hello"); } } 不允许的写法 两个变量不能重名
for(var i=0;i<10;i++){ for(var j=0;j<10;j++){ console.log("hello");//打印100次 } }
四、循环嵌套的练习 绘制图形 // * // *** // ***** // 分为行和列 for(var row=1;row<=3;row++){ var str='' //col<2*row+1 for(var col=0;col<2*row-1;col++){ str+='*' } console.log(str); }
// 绘制等腰三角形 //4行7列 // * 3空格 1个* // *** 2空格 3个* // ***** 1空格 5个* //******* 0空格 7个* for(var row=0;row<4;row++){ var str='' //绘制空格 for(var col=0;col<3-row;col++){ str+=' ' } //绘制* for(var col=0;col<2*row+1;col++){ str+='*' } console.log(str); }
console.log("===================") // 绘制倒等腰三角形 //******* 0空格 7* 0 // ***** 1空格 5* 1 // *** 2空格 3* 2 // * 3空格 1* 3 for(var i=0;i<4;i++){ var str='' for(var j=0;j<i;j++){ str+=' ' } for(var j=0;j<7-2*i;j++){ str+='*' } console.log(str); } //col<row col-- row++ 不能写
console.log("==================")
// * 3空格 1* 0 // *** 2空格 3* 1 // ***** 1空格 5* 2 //******* 0空格 7* 3 // ***** 1空格 5* 4 // *** 2空格 3* 5 // * 3空格 1* 6
//递增方式 for(var row=0;row<7;row++){ var str='' if(row<3){ for(var col=0;col<3-row;col++){ str+=' ' } //绘制* for(var col=0;col<2*row+1;col++){ str+='*' } }else{ for(var col=0;col<row-3;col++){ str+=' ' } for(var col=0;col<7-2*(row-3);col++){ str+='*' } } console.log(str); }
// 递减方式 // * 3空格 1* 7 // *** 2空格 3* 6 // ***** 1空格 5* 5 //******* 0空格 7* 4 // ***** 1空格 5* 3 // *** 2空格 3* 2 // * 3空格 1* 1
console.log("------递减方式-------"); for(var i=7;i>0;i--){ var str='' if(i>3){ for(var j=i-4;j>0;j--){ str+=' ' } for(var j=15-2*i;j>0;j--){ str+='*' } }else{ for(var j=4-i;j>0;j--){ str+=' ' } for(var j=2*i-1;j>0;j--){ str+='*' } } console.log(str); }
console.log("------九九乘法表-----"); // 绘制乘法口诀表 // \t 制表符自动对齐 相当于tab //1*1=1 0 //2*1=2 2*2=4 1 for(i=1;i<=9;i++){ var str='' for(j=1;j<=i;j++){ str+= j + "X" + i + "=" + i*j + "\t" } console.log(str); } 五、break // break 在switch中跳出整个switch块 for也一样会跳出整个for块 for(var i=0;i<5;i++){ if(i==3){ break//结束这个for循环 } console.log(i);//0 1 2 }
// 双层嵌套的循环在什么位置就结束当前位置的循环 // break 结束本个循环 for(var i=1;i<3;i++){ for(var j=1;j<3;j++){ if(i==2){ break } console.log(i*j); //1 2 } } // 复杂循环 for(var i=10;i>=5;i--){ for(var j=i;j<=6;j++){ if(i*j>33){ break } console.log(j);//5 6 } } // break在外面的循环会结束掉里面包含的循环 但是里面包含的break不会结束外面的循环 for(var i=0;i<5;i++){ if(i==2){ //break//01 continue//0134 } console.log(i); } // continue 接下来的接着走
// continue语句只能用在循环里面 // break可以用在switch里面 // break是跳出本次循环 后面不会再运行 Continue跳过这次循环 后面接着走 // break作用在 在循环嵌套中,只会跳出本次循环 而不影响外层循环
标签:do,console,day3,空格,while,循环,var 来源: https://www.cnblogs.com/haitang1102/p/16033195.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。