流程控制
分类
顺序结构:从上往下按照顺序依次执行
分支结构:根据不同的情况,执行对应的代码
循环结构:重复去做同一件事情
一、分支结构 :
if…else
语法
if(条件的判断语句1){
//满足条件1的执行语句
} else if(条件的判断语句2) {
//满足条件2的执行语句
} else {
//不满足1且不满足2
}
var num = 10;
if(num == 11) {
console.log('我不是num');
} else if (num == 10){
console.loh('我是num');
} else {
console.log('我也不是num');
}
练习
//1、求两个数的最大值
var num1 = 10, num = 20;
if(num1 > num2) {
console.log('num1是最大值');
} else if(num1 < num2) {
console.log('num2是最大值');
} else {
console.log('num1和num2相等');
}
//2、判断数的奇偶性
var num3 = 0;
num3 = parseInt(num3);
if(num3 % 2 == 0) {
console.log('是偶数');
} else {
console.log('是奇数');
}
//3、百分制转换成等级制
var score = 176;
if(score < 60) {
console.log('垃圾,不及格');
} else if(score >= 60 && score < 70) {
console.log('说得过去,刚刚及格');
} else if(score >= 70 && score < 80) {
console.log('还可以,良好');
} else if(score >= 80 && score < 90) {
console.log('还行,优秀了');
} else if(score >= 90 && score < 100) {
console.log('给力,超越了');
} else if(score == 100) {
console.log('奥利给');
} else {
console.log('疯了,写错了')
}
//window.prompt('提示框的提示信息','输入框的值'); //弹出输入框
//4、判断一个人的年龄是否满18岁(是否成年)
var age = Number(prompt('请输入您的年龄:'));
console.log(typeof age);
if (isNaN(age)) {
alert('请重新输入');
} else if (age > 18) {
console.log('成年了')
} else {
console.log('未成年')
}
// 5、判断闰年平年
// 普通闰年:能被4整除且不能被100整除
// 世纪闰年:能被400整除
var year = Number(prompt('请输入年份:'));
if (isNaN(year)) {
alert('请重新输入');
} else if (year % 4 == 0 && year % 100 !== 0) {
console.log(year + "年是普通闰年");
} else if (year % 400 == 0) {
console.log(year + "年是世纪闰年");
} else {
console.log(year + "年是平年");
}
三目运算
//三目运算就是if……else……的简写
// ? 后边是条件满足后执行语句
// : 后边是条件不满足后执行语句
这是if…else语句
var num1 = 1;
if (num1 > 0) {
console.log('num大于0');
} else {
console.log('num小于0');
}
这是三目运算语句
num1 > 0 ? console.log('num大于0') : console.log('num小于0');
switch…case语句
var day = Number(prompt("请输入今天周几"));
switch (day) {
case 1:
console.log("星期一");
break;
case 2:
console.log("星期二");
break;
case 3:
console.log("星期三");
break;
case 4:
console.log("星期四");
break;
case 5:
console.log("星期五");
break;
case 6:
console.log("星期六");
break;
case 7:
console.log("星期日");
break;
default:
console.log('请重新输入');
// 注意:1、if语句的返回值肯定是布尔,会发生隐式转换
// 2、switch..case 表达式的类型不能是boolean类型,常用于等值判断,不会发生隐式转换
// 3、能用switch实现的肯定可以用if,反之不一定!
二、循环结构:
while语法
while(循环判断语句){
循环体;
自增(自减)语句;
}
while练习
//1、求1-100之间的和
var i = 1;
var sum = 0;
while (i <= 100) {
sum += i;
i++;
}
console.log('1-100的和:' + sum);
//2、打印100以内7的倍数
var a = 1;
while(a<=100){
if(a%7==0){
console.log(a);
}
a++;
}
//3、求0-100的奇数和与偶数和
var j = 0;
var sumO = 0, sumJ = 0;
while (j <= 100) {
if (j % 2 == 0) {
console.log('偶数:' + j);
sumO = sumO + j;
} else {
console.log('奇数:' + j);
sumJ = sumJ + j;
}
j++;
}
console.log('奇数和:' + sumJ);
console.log('偶数和:' + sumO);
do while语法
do {
//循环体
} while(循环判断语句);
不管条件是否满足,都会执行一次,,先斩后奏
do while练习
//1、100以内的和
var sum = 0;
var i = 1;
do {
sum += i;
i++;
} while (i <= 100);
console.log('100以内的和为:' + sum);
//2、打印100以内7的倍数
var j = 1;
do {
if (j % 7 == 0) {
console.log(j);
}
j++;
} while (j <= 100);
for循环语法
for循环可以确定循环的次数
for(初始表达式;循环判断表达式;自增表达式){
//循环体
}
//1、1-100的和
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum);
//2、求0-100的奇数和与偶数和
var sumO = 0, sumJ = 0;
for (var i = 0; i <= 100; i++) {
if (i % 2 == 0) {
console.log(i + '是偶数');
sumO += i;
} else {
console.log(i + '是奇数');
sumJ += i;
}
}
console.log("偶数和:" + sumO);
console.log("奇数和:" + sumJ);
for循环练习
//1、打印正方形
for(var i=0;i<=6;i++){
document.write("♠♠♠♠♠♠♠♠♠♠♠♠");
document.write("<br>");
}
//2、 嵌套循环
// 外边的循环是行数
for (var j = 0; j <= 6; j++) {
// 里边的循环是每一行黑桃的个数
for (var i = 0; i <= 11; i++) {
document.write("♠");
}
document.write("<br>");
}
//3、打印三角形
for (var j = 1; j <= 7; j++) {
for (var i = 0; i < j; i++) {
document.write("♠");
}
document.write("<br>");
}
三、continue与break
// continue:跳出当前的循环,继续执行下次循环
// break:跳出整个循环,循环终止。
//打印100以内7的倍数
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0) {
if (i == 49) {
continue; //跳过49将继续执行
}
if (i == 77) {
break; //跳过77并终止循环
}
console.log(i);
}
}
//break的用法
var j = 1;
while (j <= 2) {
console.log(j)
break; //可以避免死循环
}
练习题
作业1:求1-100之间所有数的乘积
var i = 1;
var mul = 1;
//方法一:
while (i <= 100) {
mul *= i;
i++;
}
console.log("1-100数的乘积:" + mul);
document.write('<br>');
//方法二:
do {
mul *= i;
i++;
} while (i <= 100);
document.write("1-100数的乘积:" + mul);
document.write('<br>');
//方法三
for (i = 1; i <= 100; i++) {
mul *= i;
}
document.write("1-100数的乘积:" + mul);
作业2:求1-100之间所有奇数的和
var i = 1;
var sum = 0;
// 方法一:
while (i <= 100) {
if (i % 2 !== 0) {
sum += i;
}
i++;
}
document.write("1-100之间所有奇数的和:"+sum);
// 方法二:
do{
if (i % 2 !== 0) {
sum += i;
}
i++;
}while(i <= 100);
document.write("1-100之间所有奇数的和:"+sum);
// 方法三:
for (i = 1; i <= 100; i++) {
if (i % 2 !== 0) {
sum += i;
}
}
document.write("1-100之间所有奇数的和:" + sum);
作业3:计算1-100之间能3整除的数的和
// 方法一:
var i = 1;
var sum = 0;
while (i <= 100) {
if (i % 3 == 0) {
sum += i;
}
i++;
}
document.write("1-100之间能被3整除的数的和:" + sum);
//方法二:
do {
if (i % 3 == 0) {
sum += i;
}
i++;
} while (i <= 100);
document.write("1-100之间能被3整除的数的和:" + sum);
//方法三:
for(i=1;i<=100;i++){
if (i % 3 == 0) {
sum += i;
}
}
document.write("1-100之间能被3整除的数的和:" + sum);
作业4:计算1-100之间不能被7整除的数的和
var i = 1;
var sum = 0;
//方法一:
while (i <= 100) {
if (i % 7 !== 0) {
sum += i;
}
i++;
}
document.write("1-100之间不能被7整除的数的和:" + sum);
//方法二:
do {
if (i % 7 !== 0) {
sum += i;
}
i++;
} while (i <= 100);
document.write("1-100之间不能被7整除的数的和:" + sum);
//方法三:
for (i = 1; i <= 100; i++) {
if (i % 7 !== 0) {
sum += i;
}
}
document.write("1-100之间不能被7整除的数的和:" + sum);
作业5:本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。
计算5年后,获得的新本金(本金+利息)一共是多少?
// 本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。
//计算5年后,获得的新本金(本金+利息)一共是多少?
var money = 10000;
var rate = 0.003;
for (var year = 1; year <= 5; year++) {
money += money * rate;
}
document.write("获得的新本金(本金+利息)一共是:" + money);
作业6:求1-100之间不能被7整除的整数的和(用continue)
var sum = 0;
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0) {
continue;
}
sum += i;
}
document.write("1-100之间不能被7整除的数的和:" + sum);
作业7:求200-300之间所有的奇数的和(用continue)
var sum = 0;
for (var i = 200; i <= 300; i++) {
if (i % 2 == 0) {
continue;
}
sum += i;
}
document.write('200-300之间所有的奇数的和:' + sum)
作业8: 求200-300之间第一个能被7整数的数(break)
for (var i = 200; i <= 300; i++) {
if (i % 7 == 0) {
break;
}
}
document.write("200-300之间第一个能被7整数的数:" + i);
作业9:打印9*9乘法表
var multi = 1
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
multi = i * j;
document.write(j + '*' + i + '=' + multi);
document.write(' ')
}
document.write('<br>');
}