循环结构
引入:操场一圈是400米,在运动会的时候,2000米的跑步比赛,我们需要绕操场跑5圈,如下图:
这就是一个循环,那么,在这个过程中,其实我们动作只是跑一圈,剩下的过程只是在重复。从计算机的角度来想, 我们可不可以设定一个程序,让他自动跑5圈呢?可以的,用咱们今天要学习的循环结构。循环结构的意义就是让代 码重复执行。
while循环结构
语法:
例:对女朋友说5句我爱你
while循环结构的具体流程:
while循环需要我们在循环外就将变量声名好,在执行代码的过程中,一定要让变量进行变化,否则这个循环就会无 休止的进行下去。
不会停止的循环叫做死循环,程序一直不会停止,cpu占用率越来越高,很容易造成系统崩溃。所以我们在写代码的 时候一定避免写成死循环。
例:利用while循环中的变量输出数字1~5
do while循环结构
do while 循环是while循环的变异体。循环流程相似,唯一不同的地方在于do while循环会先执行一次,不管条件是否成立,先执行一次,后面的流程和while循环一样。
for循环结构
语法:
例:输出10句“我爱你”
循环执行过程分析:
首先i=1;然后进行条件判断i<=10;条件成立,所以运行了大括号中的代码-----第一次执行 接下来i++;然后i=2;再 进行条件判断i<=10;条件成立,所以又运行了大括号中的代码------第二次执行 i++;i=3;条件判断i<=10;条件成 立,再次运行------第三次执行 i++;i=4;条件判断i<=10;条件成立,再次运行------第四次运行 。。。
for循环中的初始值和变化可以不放在小括号中
执行流程是一样的,只是写法不一样。
在循环中,变量i的变化规律可以不是递增,也可以递减,也可以不是递增1。。。总而言之,变量i的变化规律可以自定义。
例:求出1~10之间所有单数的和。
for循环的运行流程
循环中的跳转关键字
在循环有两个关键字可以改变循环执行的流程。
continue关键字,可以跳过当前这次的循环,直接进行下一次的循环。
break关键字,可终止循环,直接让整个循环结束运行。
运行流程如下图所示:
案例
1. 入职薪水10K,每年涨幅5%,50年后工资多少?
2. 打印100以内 7的倍数
3. 打印100以内的奇数
循环的嵌套
让一段重复执行代码重复执行,也就是设定一个大程序,让多个人跑5圈。
debug调试工具的使用
断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步
往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。
调试步骤:
调试中的相关操作
练习调试 :
练习题、
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
<script>
// 1.判断整数的范围
// var num = prompt('输入整数:')
// // 选择多分支
// if(num > 0) {
// console.log("大于0");
// } else if(num < 0) {
// console.log("小于0");
// } else {
// console.log("等于");
// }
// 2.分数判断等级
// 0~59不及格 60~69及格 70~79丙 80~89乙 90~100甲
// var score = prompt('输入分数:')
// 直接判断score,需要写100个case
// 发现每个区间范围内的分数,都是有规律,十位上的数字,都相同
// 判断十位上的数字 - 将score除以10,取整
// var shi = score / 10
// var shi = parseInt(score / 10)
// if(score >= 0 && score <= 100) {
// switch(shi) {
// case 6:
// console.log("及格的");
// break;
// case 7:
// console.log("丙");
// break;
// case 8:
// console.log("乙");
// break;
// case 9:
// case 10:
// console.log("甲");
// break;
// case 5:
// case 4:
// case 3:
// case 2:
// case 1:
// case 0:
// console.log("不及格");
// }
// } else {
// console.log("数字不合法");
// }
// 3.判断体重是否合适
// var height = prompt("请输入身高:");
// var weight = prompt("请输入体重:"); // 斤
// // 先求出标准体重
// var standard = (height - 108) * 2; // 斤
// // 判断范围:standard-10 ~ standard+10
// if(weight >= standard - 10 && weight <= standard + 10) {
// console.log("合适");
// } else {
// console.log("不合适");
// }
// 4.判断奇数偶数
// var num = prompt('输入数字:')
// if(num % 2 === 0) {
// console.log("偶数");
// } else {
// console.log("奇数");
// }
// if(num % 2) {
// console.log("奇数");
// } else {
// console.log("偶数");
// }
// 5.根据月份判断有多少天
// var month = prompt("输入月份:")-0
// switch(month) {
// case 1:
// case 3:
// case 5:
// case 7:
// case 8:
// case 10:
// case 12:
// console.log("31天");
// break;
// case 2:
// console.log("28或29天");
// break;
// case 4:
// case 6:
// case 9:
// case 11:
// console.log("30天");
// break;
// default:
// console.log("月份不对");
// }
// 6.根据一个数字日期,判断这个日期是这一年的第几天 例如: 20160211,计算后结果为42
// var date = prompt('输入数字日期:')
// // 20160211
// var month = parseInt(date / 100) % 100
// var year = parseInt(date / 10000)
// var day = date % 100
// var sum = 0
// switch(month){
// case 12:
// sum += 30
// case 11:
// sum += 31
// case 10:
// sum += 30
// case 9:
// sum += 31
// case 8:
// sum += 31
// case 7:
// sum += 30
// case 6:
// sum += 31;
// case 5:
// sum += 30
// case 4:
// sum += 31
// case 3:
// // 判断是否是闰年
// if(year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
// sum += 29
// } else {
// sum += 28
// }
// case 2:
// sum += 31
// case 1:
// sum += day;
// }
// console.log(sum);
// 7.
// var a = prompt('请输入a:'),
// b = prompt('请输入b:'),
// c = prompt('请输入c:');
// if (a > b) {
// if (c > a) {
// alert(c)
// } else {
// alert(a)
// }
// } else if (a < b) {
// if (c > b) {
// alert(c)
// } else {
// alert(b)
// }
// }
// 8.判断水仙花数
// 水仙花数:3位数 = 个位上的数字的3次方 + 十位上的数字的3次方 + 百位上的数字的3次方
// 153 = 1 + 125 + 27
// 370 = 27 + 343 + 0
// var num = +prompt('输入一个三位数:')
// var ge = num % 10;
// var shi = parseInt(num / 10) % 10
// var bai = parseInt(num / 100)
// if(num === ge*ge*ge + shi*shi*shi + bai*bai*bai) {
// console.log("YES");
// } else {
// console.log("NO");
// }
// 9.秒换算 天 小时 分钟 秒 7896709887
var allSeconds = 7896709887
var allDays = parseInt(allSeconds / 60 / 60 / 24)
var hours = parseInt(allSeconds / 60 / 60) % 24
var minutes = parseInt(allSeconds / 60) % 60
var seconds = allSeconds % 60;
console.log("小明学习js用了" + allDays + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒");
</script>
</html>