JS基础 3 流程控制 循环 + Time

循环

在程序中,一组被重复执行的语句被称之为循环体,能否继续重复执行取决于终止体条件,由循环体终止条件组成的语句被称之为循环语句

死循环:条件语句永远成立


一、for循环

重复执行某些代码,通常跟计数有关

1.初始化变量: 就是用 var 声明的一个普通变量,通常用于作为计数器使用
2.条件表达式: 就是终止条件,用来决定每一次循环是否执行,如果结果是 true 就继续循环,否则退出循环
2.操作表达式: 就是每次循环最后执行的代码,经常用于我们计数器变量进行更新(递增或递减)

for(初始化变量; 条件表达式; 操作表达式 ){
    循环体
}

for (var i = 1; i <= 100; i++) {
	console.log('你好吗');
}

执行过程:
1.首先执行里面的计数器变量 var i = 1但是这句话在for里面只执行一次
2.去i <= 100执行条件表达式,如果为true,则执行循环体语句,否则退出循环,循环结束
3.最后执行i++操作表达式,第一轮结束
4.第二轮开始,直接去执行条件表达式i <= 100,如果为 true ,则去执行循环体语句,否则退出循环

  • for 循环重复相同的代码
//  基本写法
for(var i = 1; i <= 10; i++){
    console.log('鲸渔');
}
// 用户输入次数
var num = prompt('请输入次数:')for ( var i = 1 ; i <= num; i++) {
    console.log('鲸渔');
} 
  • for 循环重复不相同的代码
    for 循环还可以重复不同的代码,这主要是因为使用了计数器 ,计数器在每次循环过程中都会有变化
//  基本写法
for (var i = 1; i <= 100; i++) {
      console.log('这个人今年' + i + '岁了');
}
// for 里面是可以添加其他语句的 
for (var i = 1; i <= 100; i++) {
 if (i == 1) {
    console.log('这个人今年1岁了, 它出生了');
 } else if (i == 100) {
    console.log('这个人今年100岁了,它死了');
  } else {
       console.log('这个人今年' + i + '岁了');
  }
}

for循环因为有了计数器的存在,还可以重复的执行某些操作,比如做一些算术运算

1~100 之间的整数累加和
var sum = 0; // 求和变量
for (var i = 1; i <= 100; i++) {
	// sum = sum + i;
	sum += i;
}
console.log(sum);

二、双重for循环

内层循环可以看做外层循环的语句
外层循环执行一次,内层循环要执行全部次数

var star = '';
for (var i = 1; i <= 3; i++) {
    for (var j = 1; j <= 3; j++) {
      star += '☆'
    }
    // 每次满 5个星星 就 加一次换行
    star += '\n'
}
console.log(star);
// 九九乘法表
var str = '';
for (var i = 1; i <= 9; i++) {
	for (var j = 1; j <= i; j++) {
		str += j + '×' + i + '=' + i * j + '\t';
	}
	str += '\n';
}
console.log(str);

三、while循环

while 语句可以在条件表达式为真的前提下,循环执行指定的一段代码,直到表达式不为真时结束循环

while (条件表达式) {
    // 循环体代码 
}
变量初始化

while (条件表达式) {
    // 循环体代码 
    变量更新
}

var num = 1;			 // 初始化变量,计数器
while (num <= 100) {	 // 条件表达式
	console.log('鲸渔');
	num++;				 // 操作表达式,更新,防止死循环
}

var message = prompt('你爱我吗?');
while (message !== '我爱你') {
	message = prompt('你爱我吗?');
}
alert('我也爱你啊!');

四、do-while循环

注意:先再执行循环体,再判断条件表达式,如果结果为 true,则继续执行循环体代码,如果为 false,则退出循环,至少会执行一次循环体代码

 do {
     // 循环体代码
 } while(条件表达式);

 var i = 1;
 do {
	 console.log('鲸渔');
	 i++;
 } while (i <= 100);

 do {
	 var str = prompt('叫爸爸');
 } while (str != '鲸渔爸爸');
 alert('乖儿子');

五、continue、break

  • continue
    continue 关键字用于立即跳出本次循环,继续执行剩余次数的循环
 for (var i = 1; i <= 5; i++) {
       if (i == 3) {
           console.log('这个包子有虫子,扔掉');
           continue; // 跳出本次循环,跳出的是第3次循环 
        }
        console.log('我正在吃第' + i + '个包子呢');
 }

 // 求1~100之间,除了能被7整除之外的整数和
 var sum = 0;
 for (var i = 1; i <= 100; i++) {
 	if (i % 7 == 0) {
 		continue;
 	}
 	sum += i;
 }
 console.log(sum);

  • break
    break 关键字用于立即跳出整个循环(循环结束)
for (var i = 1; i <= 5; i++) {
     if (i == 3) {
     	 console.log('不好包子有毒');
         break; // 直接退出整个for 循环,跳到整个for下面的语句
     }
     console.log('我正在吃第' + i + '个包子呢');
 }

🐋鲸渔Time🐱‍👤

写一个等腰空心三角形

var arr = prompt('三角形多少行') - 0;
var kong = '';
for (var i = 1; i <= arr; i++) {
    for (var j = 0; j <= arr - i; j++) {
        if (j !== arr - i) {
            kong += ' ';
        } else {
            kong += '0';
        }
    }
    for (var a = 1; a <= 2 * (i - 1); a++) {
        if (i !== arr) {
            if (a !== 2 * (i - 1)) {
                kong += ' ';
            } else {
                kong += '0';
            }
        } else {
            kong += '0';
        }
    }
    kong += '\n';
}
console.log(kong);

写一个ATM机

var arr = parseFloat(prompt('1.存钱' + '\n' + '2.取钱' + '\n' + '3.余额查询' + '\n' + '4.退出'));
var money = 0;
while (arr !== 4) {
    switch (arr) {
        case 1:
            money += parseFloat(prompt('存多少') - 0);
            alert('你的余额是' + money);
            break;
        case 2:
            var lost = parseFloat(prompt('取多少') - 0);
            while (lost > money) {
                lost = parseFloat(prompt('你的余额是' + money + '请重新输入') - 0);
            }
            money -= lost;
            alert('你的余额是' + money);
            break;
        case 3:
            alert('你的余额是' + money);
            break;
        default:
            break;
    }
    arr = parseFloat(prompt('1.存钱' + '\n' + '2.取钱' + '\n' + '3.余额查询' + '\n' + '4.退出'));
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值