javascript-流程控制
流程控制
顺序流程控制 分支流程控制:根据不同的条件,执行不同的路径代码(执行代码多选一),从而得到不同的结果。 if语法结构 If-else结构 var age = prompt('请输入你的年龄') if (age > 18) { alert('您已成年'); } else { alert('未成年'); } 测试:判断是否为闰年(2004是闰年,1995不是闰年) var year = prompt('请输入需要判断的年份'); if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { alert(year + '是闰年'); } else { alert(year + '不是闰年'); } 中奖案例(要求刘德华为中奖暗词) var name = prompt('请输入竞猜姓名'); if (name == '刘德华') { alert('恭喜中奖,获得五元'); } else { alert('很遗憾,未中奖'); } If-else if语句多分支语句 适用于检查多重条件 var grade = prompt('请输入成绩'); if (grade >= 90 && grade <= 100) { alert('A:你很优秀'); } else if (grade >= 80 ) { alert('B:你很棒'); } else if (grade >= 70 ) { alert('C:你很稳'); } else if (grade >= 60 ) { alert('D:你很一般'); } else if (grade < 60 && grade > 0) { alert('准备重修吧!'); } else { alert('格式出入错误'); } 三元表达式 有三元运算符组成的式子我们成为三元表达式 条件表达式 ?表达式1:表达式2 如果条件表达式结果为真,返回1,为假,返回2 //案例:小于10 ,数字前补0,01,02,数字大于10 ,不补0,12; var time = prompt('请你输入一个0-59之间的数字'); //三元表达式 var new_time = time < 10 ? '0' + time : time; alert(new_time); Switch 循环 switch(表达式){ case value1: 执行语句1; break; case value2: 执行语句2; break; ....default :执行最后的语句;
} 代码验证 switch (2) { case 1: alert('num is :1'); break; case 2: alert('num is :2'); break; case 3: alert('num is :3'); break; default: alert('num is wrong');
} switch注意事项 1.我们开发里面 表达式我们经常写成变量 2.我们num的值和case里面的值相匹配的时候是全等,必须是值和数据类型一致才可以num==1 3.break如果当前的case里面没有break则不会退出switch是继续执行下一个case // 查询水果,输入查询 var fruit = prompt('请输入您想查询的水果名称'); switch (fruit) { case '火龙果': alert("库存充足"); break; case '草莓': alert("库存充足"); break; case '苹果': alert("库存充足"); break; case '哈密瓜': alert("库存充足"); break; default: alert("无库存"); } Switch 和if else if的区别
- 一般情况下可以互换
- switch语句通常处理固定值,if语句灵活,常用语判断大于小于之类
- switch语句效率高
- 分支少if效率高
- 分支多时switch效率高
循环过程
for循环 for (初始化变量;条件表达式;操作表达式){ //循环体 } //初始化变量就是用var声明一个普通变量,通常用于作为计数器使用 for (var i = 1; i <= 100; i++) { console.log("woainib"); } 1+2+3……+100=? var sum = 0; for (var i = 1; i <= 100; i++) { sum = sum + i; } alert(sum); (1+2+3……+100)/100=? var sum = 0; for (var i = 1; i <= 100; i++) { sum = sum + i; } var ave = sum / 100; alert(ave); 1-100间的偶数和,奇数和 var ou = 0; var ji = 0; for (var i = 1; i <= 100; i++) { if (i % 2 == 0) { ou = ou + i; } else { ji = ji + i; }} alert(ji); alert(ou); 求学生平均成绩 num = prompt('请输入班级学生的总人数'); var sum = 0; var evg = 0; for (var i = 1; i <= num; i++) { var grade = 0; grade = prompt('请输入第' + i + '个学生的成绩'); sum = sum + parseFloat(grade); } evg = sum / num; alert('班级的总人数是' + num + '\n班级的平均分数' + evg); 输出5个*,如***** var str = ""; for (var i = 0; i <= 5; i++) { str = str + '*';
} alert(str); 进阶 var str = ""; num = prompt('请输入您需要打印的*数量'); for (var i = 0; i <= num; i++) { str = str + '*';
} alert(str); 打印m行n列 num1 = prompt('请输入您需要打印的*行数'); num2 = prompt('请输入您需要打印的*列数'); var str = ""; for (var i = 1; i <= num1; i++) {
for (var j = 1; j <= num2; j++) { str = str + '*'; } str = str + '\n'; } alert(str); 输出如下: ***** **** *** ** * num = prompt('请输入您需要打印的*行数'); var str = ""; for (var i = 1; i <= num; i++) {
for (var j = num - i + 1; j >= 1; j--) { str = str + '*'; } str = str + '\n'; } alert(str); 九九乘法表 var str = ''; for (var i = 1; i <= 9; i++) { for (var j = 1; j <= i; j++) { str = str + j + '*' + i + '=' + i * j; str += '\t'; } str += '\n'; } alert(str); console.log(str);