循环语句
主要用于执行重复的某个操作
while 循环语句
while(bool){ // bool为true,则会循环(执行)代码块的语句。执行完成一次后就回到while判断bool,一直重复下
去。如果bool为false则不会执行while语句,会执行while后面的语句。
语句
}
// while 循环环境
var i=0;
while(i < 100){ // 如果while的条件一直为true,容易进入死循环,当前页面的内存占满,页面会崩溃。while一般
需要有结束条件
i++
console.log(i)
}
for 循环语句
指定循环的起点初始化的一个
number
值,循环的终点到
number
增加到多少
,
终止条件,当终止条件为
true
则循环执行for
语句,为
false
则终止循环执行
for
语句后面的语句
for(1.初始化表达式初始化一个number变量;2.终止条件为true执行false则终止;3.递增表达式递增变量){
4.语句
}
第一次for循环执行1,2, 4执行代码块语句,3.递增
第二次以及后面: 2,4,3
如果2位false,则退出for循环,执行for后面语句
for(i=1;i<=100;i++){
// console.log(i)
}
// 声明变量并初始化变量
for(var j=0;j<=100;j++){
console.log(j)
}
// 输出100以内的偶数
for(var k=1;k<=100;k++){
if(k % 2 === 0){
console.log(k)
}
}
// 输出3行数字,每行数字都是从1-10的排列
for(var y=1;y<=20;y++){
var str = "";
for(var x=1;x<=10;x++){
str +=" " + x
}
str = "<p>"+str+"</p>"
document.write(str)
}
//
for(var a1=1;a1<=5;a1++){
for(var b1=1;b1<=a1;b1++){
document.write("*")
}
document.write("<br/>")
}
do...while 循环语句
和
while
比较类似,都是循环。先执行
do
后面的代码语句,再判断条件是否为
true
,
true
则循环执行
do...while
。如果 为false
则终止循环,执行
while
后面语句
do{
语句
} while(条件)
break 语句。
可以跳出循环代码块
1. 跳出
switch
2. 跳出循环语句
for,while
,
do...while
var i=0;
while(i<100){
i++
// 从100里面找出等于10的数字,找出以后后面不需要再执行循环,可以加break跳出当前循环,这样就节
省了cpu计算资源。
if(i === 10){
console.log(i)
break
}
}
for(let j=1;j<=100;j++){
if(j===50){
console.log(50)
break
}
}
continue
终止当前这一次循环,返回循环头部执行后面循环
for(var k=1;k<=10;k++){
if(k===4){
// 终止当前循环(continue后面语句不会执行),继续执行后面的循环
continue
}
console.log(k)
}
tag
可以给代码块加一个tag标志,可以使用break或者continue跳转到tag位置,tag可以自定义名称,和变量名定义规则 一致。
tag:
循环语句{
}
outtag: // 创建tag
for(var i=0;i<3;i++){
for(var j=0;j<3;j++){
if(j===1){
console.log("b"+j)
break outtag; // 跳出循环并跳到指定tag位置,并执行tag后面的语句
}
}
console.log("a"+i)
}
console.log("over")
// continue tag 跳到到指定tag 执行下一次循环
nextTag:
for(var i=0;i<3;i++){
for(var j=0;j<3;j++){
if(j===1){
console.log("b"+j)
continue nextTag; // 跳到指定tag位置,并执行下一次循环
}
}
console.log("a"+i)
}
题
写一个计算银行利息的程序
1. 用户可以存钱,
存10000元以下,1年利息是0.01,2-3年利息是0.03,3年以上利息是0.06
存10000-30000元,1年利息是0.02,2-3年利息是0.04,3年以上利息是0.07
存30000-80000元,1年利息是0.03,2-3年利息是0.05,3年以上是0.08
80000元以上, 1年利息是0.04,2-3年是0.06,3年以上是0.09
while(true){
var money = +prompt("请输入存的钱")
var year = +prompt("请输入年限")
// 如果money或者year不能转为number,则不进行计算
if(!money || !year){
alert("请输入正确的数值!")
} else {
var discount = 0.01
if(money <=10000){
discount = 0.01
} else if(money<=30000) {
discount = 0.02
} else if(money <= 80000) {
discount = 0.03
} else {
discount = 0.04
}
if(year>=2 && year <=3){
discount += 0.02
} else if(year >3){
discount += 0.05
}
alert(money+"-"+year+"-"+discount)
alert("您的利息是:" + money * year * discount)
}
}
2.输出100以内的质数(一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数就是质数。如2,3,5,7....)。
循环2-100的数字,把每个数字去除以10以内的数字(排除自身),如果没有余数则能除尽,则不是质数
for(var i=2;i<=100;i++){
var ok=true; // 判断是否是一个质数,true为质数,false不为质数
for(var j=2;j<=10;j++){
// 用100以内的每个数字去和10以内的数字取余,如果余数为0则能除尽,并且跳出当前这一次循环。
if(i % j === 0 && i !== j){
ok=false
// 写在那个for循环就跳出哪个for循环
break
}
}
if(ok){
console.log(i)
}
}
3.输出*星号,找出行和*的关系是 2*(n-1)+1
for(var i=1;i<=5;i++){
for(var j=1;j<=2*(i-1)+1;j++){
document.write("*")
}
document.write("<br>")
}
4.输出*号金字塔形状
for(var i=1;i<=5;i++){
// 先输出空格
for(var k=5;k>=i;k--){
document.write(" ")
}
// 再输出*号
for(var j=1;j<=2*(i-1)+1;j++){
document.write("*")
}
document.write("<br>")
}
5.带编号的表格,打印出html标签,最好是把所有标签拼接为1个字符串,再打印
<title>Document</title>
<style>
table{
background-color: blue;
}
table td{
background-color: #fff;
padding: 15px;
}
</style>
var str = "<table>"
for(var i=0;i<10;i++){
str+="<tr>"
for(var j=0;j<10;j++){
str+="<td>"+i+"-"+j+"</td>"
}
str+="</tr>"
}
str+="</table>"
document.write(str)
/*
99 乘法表
*/
var stra = "<table>"
for(var i=1;i<=9;i++){
stra+="<tr>"
for(var j=1;j<=i;j++){
stra+="<td>"+j+"x"+i+"="+ i*j +"</td>"
}
stra+="</tr>"
}
stra+="</table>"
document.write(stra)
6. 九九乘法表
var stra = "<table>"
for(var i=1;i<=9;i++){
stra+="<tr>"
for(var j=1;j<=i;j++){
stra+="<td>"+j+"x"+i+"="+ i*j +"</td>"
}
stra+="</tr>"
}
stra+="</table>"
document.write(stra)