思想箩筐思想开关思想"/>
JS分支结构循环打擂思想箩筐思想开关思想
JS分支结构&循环
- 分支结构
- if
- if else(用的最多)
- if else - if else
- switch - case
- do-while结构
- while结构 :
- for 结构
- 三种循环的适用场合以及注意点
- 循环嵌套
- 开关思想循环判断
- 箩筐思想求和
- 打擂思想求极值
分支结构
if
语法结构 :
if (表达式) {条件成立时执行的代码
}//实例
if(1+1==2){console.log("是对的");
}
表达式可以是:
关系
表达式布尔
类型的值其他
类型的值
if
结构里面的{}
在条件成立时需要执行的代码只有一行时可以省略
, 但是一般不要省略
if else(用的最多)
if(表达式) {条件成立时执行的代码(代码1)
} else {条件不成立时执行的代码(代码2)
}//实例
// 1.请用户输年份,输出该年是平年还是闰年。
// 闰年的计算方法:能被400整除 或者 能被4整除且不能被100整除
var year = prompt("请输入年份")
if(year % 400 == 0||(year % 4 == 0 && year % 100 != 0)){console.log(year+"是闰年");}
else{console.log(year+"是平年");
}
语法解析 :
- 当表达式
成立
时, 执行代码1,否则
执行代码2
2.if-else
是表示两个互斥
的结构, 只满足其中一个 , 两个大括号的里面的代码不可能同时执行
else
后面绝对不能
接()
if else - if else
语法结构 :
if(条件1) {条件1成立时执行的代码
} else if (条件2) {条件2成立时执行的代码
}
.......
else {以上条件都不满足的时候, 执行的代码}//实例
//求三个数中的最大值
if(a>=b && a>=c){alert(a)
}else if(b>=a && b>=c){alert(b)
}else if(c>=a && c>=b){alert(c)
}
特点 :
if-else
if
是做多条件判断的- 所有大括号里面的代码只会执行一个
switch - case
switch-case
: 主要用于固定值匹配
switch-case
匹配规则
: 匹配值必须是全等的
break
的作用 : 是用来结束
switch-case
语句的 可以不写, 但是不写 会出现穿透
现象
防止穿透
break
只能用于switch
语句和循环语句
//实例// 3.请用户输入1个星期数. 就将对应的英文的星期打印出来.//monday//tuesday//Wednesday// Thursday// Friday// on Saturday// Sunday
var week = +prompt("输入星期数")
switch(week){case 1:alert("monday")break;case 2:alert("tuesday")break;case 3:alert("Wednesday")break;case 4:alert("Thursday")break;case 5:alert("Friday")break;case 6:alert("Saturday")break;case 7:alert("Sunday")break;default : alert("瞎搞");break;}
do-while结构
do-while 结构
do {循环体 : 条件成立时重复执行的代码
} while (判断条件 true / false);
结构解析 : 先无条件执行一遍循环体, 然后再判断, 如果条件成立, 就重复执行循环体代码
特点 : 先斩后奏
while结构 :
while (判断条件 true / false) {循环体 : 条件成立时重复执行的代码// 注意 循环变量自增,不自增则死循环}
//实例
// 3、计算1-100之间所有奇数的和,偶数的和,3的倍数的和var number1 = 1; //奇数开始数
var number2 = 0; //偶数开始数
var number3 = 3; //三倍数开始数
var odd = 0; //存放奇数之和
var even = 0; //存放偶数之和
var triple = 0; //存放三倍数之和
while(number1 <= 100) {odd += number1;number1 += 2;
}
while(number2 <= 100) {even += number2;number2 += 2;
}
while(number3 <= 100) {triple += number3;number3 += 3;
}alert("奇数之和为"+ odd);
alert("偶数之和为"+ even);
alert("3倍数之和为"+ triple);
结构解析 : 先判断条件是否成立, 如果成立, 重复执行循环体代码
特点 : 先奏后斩
for 结构
for(语句1 ; 语句2 ; 语句3) {循环体 : 条件成立时重复执行的代码
}
//实例
//打印十遍hello wrold
for(var i = 10; i > 0; i--) {console.log("hello world");
}
语句1 : 声明一个变量, 来记录循环次数, 叫做循环变量
语句2 : 判断条件
(通常是条件表达式), 他是用来控制循环的结束还是继续
语句3 : 通常都是循环变量
的自增
或者自减
结构解析 :
- 执行语句1(声明循环变量)
- 执行语句2, 判断条件是否成立,
- 如果成立 执行循环体代码
- 循环变量自增, 重复执行步骤2
如果不成立, 就跳出循环, 执行大括号外面的代码
三种循环的适用场合以及注意点
三种循环结构的适用场景 :
while : 适用于循环次数不固定的场景
do-while : 适用于循环次数不固定的场景, 但是循环体代码必须无条件执行一次
for : 适用于循环次数固定的场景
三种循环的注意点 :
for
- 小括号里面的语句都可以省略, 但是分号不能省略, 三个语句都省略了, 就变成死循环了
- 循环变量的定义可以提到循环外
- 循环变量自增可以写在循环体里面
while
- 循环变量 循环条件 循环变量的自增或者自减 都必须有
- 循环变量自增或者自减一定不能忘
do-while
- 循环变量 循环条件 循环变量的自增或者自减 都必须有
- 循环变量自增或者自减一定不能忘
循环嵌套
一个循环套着一个循环
循环嵌套中, 我们要找到外层循环变量和内存循环变量之间的关系
外层循环决定行, 内层循环决定列
//判断101-200之间有多少个素数,并输出所有素数。// 1. 遍历101 到200之间的整数
for(var i = 101; i <= 200; i++) {// 2. 声明一个变量保存这个数字的因数个数var num = 0;// 3. 遍历从1到这个数之间的所有整数, 看看是否能被这个数整数for(var j = 1; j <= i; j++) {if(i % j == 0) {num++;}}// 4. 判断if(num == 2) {console.log(i);}}
开关思想循环判断
// 方法2
// // 1. 遍历101 到200之间的整数
for(var i = 101; i <= 200; i++) {// 2. 声明一个布尔类型的数据(开关思想) →循环回来又赋值为真var isOpen = true;// 3. 遍历从1到这个数之间的所有整数, 看看是否能被这个数整数for(var j = 2; j < i; j++) {if(i % j == 0) {//若能被整除,给isOpen赋值假,break 跳出内存循环,步骤4判断为假,则不执行isOpen = false;break;}}// 4. 判断if(isOpen) {console.log(i);}
}
箩筐思想求和
- 声明空箩筐
- 遍历萝卜堆数
- 计算萝卜总数
//实例
//用户输入学生的课程门数,然后依次输入每一课程的成绩,输入完毕后计算总成绩
var person = +prompt("请输入几门课程");
// 1. 声明空箩筐
var sum = 0;
// 2. 遍历萝卜堆数
for (var i = 1; i <= person; i++) {// 3. 计算萝卜总数var score = +prompt("请输入第" + i + "门课程成绩");sum += score;
}
console.log(i);
document.write("总成绩为" + (sum))
打擂思想求极值
- 声明一个空擂主
- 遍历所有的挑战者
- 依次和擂主PK
// 打擂思想求数组最大最小
var arr = new Array(50,60,89,50,60,90,70,90,56,80);
var max = -Infinity;
var min = Infinity;
for(i = 0; i < arr.length; i++){if(arr[i] >= max){max = arr[i];}else if(arr[i] <= min){min = arr[i];}
}
console.log(max);
console.log(min);
更多推荐
JS分支结构循环打擂思想箩筐思想开关思想
发布评论