循环 for while
for循环
for (var i=1; i<10; i++){
document.write(i);
}
// 其他写法
for (var n=1; n<10;){
document.write(n);
n++;
}
var m=1;
for (; m<10;){
document.write(m);
m++;
}
while循环
var i = 0;
while (i < 10){
document.write(i);
i++;
}
do…while循环
// do...while 至少执行一次
var i = 0;
do{
document.write(i);
i++;
}while (i<10);
流程图
break
- break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行
- break 默认会立即终止离它最近的那个循环语句
- break label 可以结束任何代码块,label 可自定义
break基本用法
for (var i=0; i<5; i++){
console.log('@外层循环'+i);
for (var j=0; j<5; j++){
console.log(j);
break;
}
}
break label 结束n层循环
label:
for (var i=0; i<5; i++){
console.log('@外层循环'+i);
for (var j=0; j<5; j++){
console.log(j);
break label;
}
}
break label 结束结束任何代码块
label:
if (1){
var a = 1;
break label;
a+=1;
}
console.log(a); // 1
continue
- continue 默认可以用来跳过离他最近当次循环,继续下一次循环
- continue label 跳过第n层循环,只能用于循环
continue基本用法
for (var i=0; i<5; i++){
console.log('@外层循环'+i);
for (var j=0; j<5; j++){
if (j == 2){
continue;
}
console.log(j);
}
}
continue跳出第n层循环
label:
for (var i=0; i<5; i++){
console.log('@外层循环'+i);
for (var j=0; j<5; j++){
if (j == 2){
continue label;
}
console.log(j);
}
}
循环练习题
打印空心金字塔
<?php
/*
▲
▲▲
▲▲▲
*/
for ($i=1; $i<5; $i++){
for ($j = 0;$j < $i;$j++){
echo '▲';
}
echo '<br>';
}
/*
▲ => 第1层 有1 (2*(层数-1)+1)个
▲▲▲ => 第2层 有3 (2*(层数-1)+1)个
▲▲▲▲▲ => 第3层 有5 (2*(层数-1)+1)个
*/
for ($i = 1; $i <= 5; $i++){
for ($j=1; $j<=2*($i-1)+1; $j++){
echo '▲';
}
echo '<br>';
}
/*
▲ => 第1层 有2 (层数-当前层数)个空格
▲▲▲ => 第2层 有1 (层数-当前层数)个空格
▲▲▲▲▲ => 第3层 有0 (层数-当前层数)个空格
*/
$n = 5;
for ($i = 1; $i<=$n; $i++){
// 打印空格
for ($k=1; $k<=$n-$i; $k++){
echo '▼';
}
for ($j=1; $j<=2*($i-1)+1; $j++){
echo '▲';
}
echo '<br>';
}
echo '<hr>';
/*
▲
▲*▲
▲***▲
▲▲▲▲▲▲▲
*/
$n = 5;
for ($i = 1; $i<=$n; $i++){
$num = 1;
for ($k=1; $k<=$n-$i; $k++){
echo '▼';
}
for ($j=1; $j<=2*($i-1)+1; $j++){
if ($i>1 && $i<$n){
if ($num>1 && $num<2*($i-1)+1){
echo '▼';
}else{
echo '▲';
}
}else{
echo '▲';
}
$num++;
}
echo '<br>';
}