js中的switch选择结构,js中的三目运算符,js中的while循环
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
目录:
一、switch选择结构
二、三目运算符
三、while循环
一、switch选择结构
switch(表达式){
case 常量1:语句;break;
case 常量2:语句;break;
case 常量3:语句;break;
…
case 常量n:语句;break;
default:语句;break;
}
表达式的结果全等于哪个case的常量,则执行其后的语句,执行完break就跳出switch结构,都不满足则执行default的语句。
break的作用:是跳出switch结构,如果没有break,则继续执行下面分支的的语句(而不进行判断)。
注意:
switch的括号后的变量,一定要全等于case的常量("1" != 1)
switch 的 穿透 ---如果不加 break,switch 将继续执行后面的语句(执行语句) 而不进行判断
Javascript中没有限制switch后面的表达式的结果是什么类型,C,C++java限制了表达式的结果类型
示例:
随机生成一个1-7的数字,根据值来输出是周几
var week = 1 + Math.round(Math.random() * 6); //1-7
console.log(week);
switch (week) {
case 1:
document.write("今天是星期一<br/>");
break;
case 2:
document.write("今天是星期二<br/>");
break;
case 3:
document.write("今天是星期三<br/>");
break;
case 4:
document.write("今天是星期四<br/>");
break;
case 5:
document.write("今天是星期五<br/>");
break;
case 6:
document.write("今天是星期六<br/>");
break;
case 7:
document.write("今天是星期日<br/>");
break;
default:
document.write("week有误!<br>");
break;
}
switch的穿透演示
// switch 不加break 会向下穿透
随机生成一个0-100的数字,判断成绩的等级(大于等于60分都是及格,否则不及格)
var score = Math.round(Math.random() * 100); //0-100
var level = parseInt(score / 10); // 0-10 console.log(score, level);
switch (level) { //5
case 10:
case 9:
case 8:
case 7:
case 6: document.write("及格"); break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: document.write("不及格"); break;
default:
document.write("服务器出错");
break;
}
switch的灵活用法
可以将switch的变量的值为 true 来 达到类似于 if区间的效果
var score = Math.round(Math.random() * 100); //0-100
console.log(score);
switch (true) { // 90
case score == 100: //false
document.write(score + "666");
break;
case score >= 90://true
document.write(score + "优秀");
break;
case score >= 80:
document.write(score + "良好");
break;
case score >= 70:
document.write(score + "一般");
break;
case score >= 60:
document.write(score + "及格");
break;
case score < 60 && score >= 0:
document.write(score + "不及格");
break;
default:
document.write("服务器出错");
break;
}
二、三目运算符
三目运算符:
格式:
表达式1 ? 表达式2 : 表达式3
执行过程:先求解表达式1,若为非0(真)则求解表达式2,若表达式1的值是0(假),则求解表达式3。
示例:求两个数的最大数
//a 0-10
//b 0-10min
//把a和b之间较小的值 赋值给 min
var a = Math.round(Math.random() * 10);
var b = Math.round(Math.random() * 10);
var max = a > b ? a : b; //首先判断 a是否大于b ,如果成立就返回a,否则就返回b
示例:求三个数的最大数
var a = 50;
var b = 60;
var c = 90;
var max = (a > b ? a : b) > c ? (a > b ? a : b) : c ;
//首先判断 a是否大于b ,如果a > b成立,就返回a,否则就返回b,然后判断 他们的返回值 是否大于c,如果大于c,就返回 他们的返回值,否则就返回 c,最后再把c赋值给max
示例:判断赋值
// 三元运算符的判断赋值 (它是运算符)
var result = null;
result = (score >= 60 ? score + "及格" : score + "不及格");
三、while循环
程序的三大流程控制
1. 顺序结构
2. 选择结构
3. 循环结构 重复的做一件事
循环 沿着 圆环 => 循环往复
其特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止。
循环 在满足某种特定条件的情况下 重复的执行某段操作 直到 条件不满足为止
循环的分类
while循环
do…while循环
for循环
while循环
语法格式:
while(表达式)
{
语句;
}
注意:
1、先判断表达式,表达式成立后执行语句。
2、循环条件中使用的变量(循环变量)需要经过初始化。
3、循环体中,应有结束循环的条件,否则会造成死循环。
4、循环体中可以写若干句合法的javaScript代码,包括if,也可以再套个循环语句。
循环的三要素 (一些写循环的技巧 并不适用于所有的循环)
1. 初始值
2. 循环的条件
3. 自增或自减
var i = 1; // 初始值
while (i <= 100) { //循环条件
document.write(i + "我是打印的文字<br>");
i++;
}
document.write("此时的i是:" + i);
示例:打印1-100的值
var i = 1;
var sum = 0;
while (i <= 100) {
// console.log(i); // 每次循环的 值 1 2 3
sum += i;
i++;
}
document.write("1-100的和是" + sum);
示例:
打印图形
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
var i = 1;
while (i <= 40) {
document.write("*");
if (i % 10 == 0) {
document.write("<br>");
}
i++;
}
打印100以内的偶数和
var i = 1;
var sum = 0;
while (i <= 100) {
if (i % 2 == 0) {
document.write(i + "<br/>");
sum += i;
}
i++;
}
document.write("1-100的偶数和" + sum) ;
示例:打印100以内的奇数
var i = 1;
while (i <= 100) {
if (i % 2 == 1) {
document.write(i + "<br/>")
}
i++;
}
循环嵌套练习
打印图形
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
外层 j 打印多少次
var j = 1;
var i = 1;
while (j <= 4) {
// 打印一行 i 每一行打印多少个*
while (i <= 10) {
document.write("*");
i++;
}
document.write("<br>");
j++;
}
循环的结构相对复杂,所以需要多多练习从来深刻的理解循环的运行逻辑
网友评论