本文主要是介绍javaScript学习笔记(三)「switch语句」、「断点」、「三目运算」、「while循环」、「for循环」,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
switch语句
swicth语句结构:
switch (key) {
case value:
break;
case value:
break;
case value:
break;
default:
break;
}
var x = prompt('请输入选项 A-D');switch (x) {case 'A':alert('A选项')break;case 'B':alert('B项')break;case 'C':alert('C选项')break;case 'D':alert('D选项')break;default:break;}
认识单词:
swicth(选择,转换) case(选项)
break:终止,停止
value:值
default:默认的
注意点:1. switch 后的key一般是一个变量
2. case后一般就是一个值,"1" 1
3. 没有break不会中断
4. switch语句体内部,可以嵌套一些if语句,或者for都可以
执行流程:
1. 拿switch后的key和case后的value进行全等比对(===)
2. 匹配到的,就执行对应的代码段,依次向下,遇到break终止
3. default: 当条件都不满足会走default
//输入月份查询当月天数 var x = prompt('请输入选项 月份 1-12'); //输入2 "2"switch (x - 0) { // x*1 x/1case 1:case 3:case 5:case 7:case 8:case 10:case 12:alert('31天')break;case 2:alert('28天')break;case 4:case 6:case 9:case 11:alert('30天')break;default:alert('没有匹配到')break;}
switch语句案例:
已知银行整存整取存款不同期限的月息利率分别为:
月息利率=
0.63% 期限=1年
0.66% 期限=2年
0.69% 期限=3年
0.75% 期限=5年
0.84% 期限=8年
输入存款的本金和年限,求到期时能从银行得到的利息与本金的合计。
利息的计算公式为:利息=本金×月息利率×12×存款年限。
var money = +prompt('请输入存储的本金')var x = +prompt('请输入存款年份');//正号也可以进行隐式转换,数字var lx = 0;//存储利息用的变量switch (x) {case 1:lx = money * 12 * x * 0.0063alert('本息和是' + (lx + money))break;case 2:lx = money * 12 * x * 0.0066alert('本息和是' + (lx + money))break;case 3:lx = money * 12 * x * 0.0075alert('本息和是' + (lx + money))break;case 4:lx = money * 12 * x * 0.0084alert('本息和是' + (lx + money))break;default:break;}
简化版本:
var money = +prompt('请输入存储的本金')var x = +prompt('请输入存款年份');//正号也可以进行隐式转换,数字var lx = 0;//存储利息用的变量switch (x) {case 1:lx = money * 0.0063 * 12 * x; // lx重新赋值break;case 2:lx = money * 0.0066 * 12 * xbreak;case 3:lx = money * 0.0069 * 12 * xbreak;case 5:lx = money * 0.0075 * 12 * xbreak;case 8:lx = money * 0.0084 * 12 * xbreak;}alert(lx + money)
-
打断点:代码的执行顺序
f12 -- >sources-->双击打断点的文件-->找到断点位置(自己决定)--->刷新页面--->按下step over next--->测试完毕记得关闭断点
举例如下:
var x = "B";switch (x) {case 'A':document.write('A选项')break;case 'B':document.write('B项')document.write('BB项')document.write('BBB项')break;case 'C':document.write('C选项')break;case 'D':document.write('D选项')break;default:break;}
在控制台打断点,观察代码运行顺序
点击右侧图标
观察代码运行顺序:
-
三目运算符
也称三元运算符:
语法:
关系表达式?值1/语句体:值2/语句体
关系表达式:比较出来一个布尔类型的结果
执行流程:
关系表达式为true,就走?后面的语句体
关系表达式为false,就走:后面的语句体
var x = 11;x%2==0?document.write('是偶数'):document.write('是奇数');
运算符的优先级
运算符号比较多,== ?: =
先判断x%2==0,再进行三目运算,得到的运算结果为偶数,最后再进行赋值
var year = 2008;// 录入一个数字年份,判断是否是闰年year%4==0&&year%100!=0||year%400==0?alert('是闰年'):alert("是平年");
-
while循环
代码中: 重复执行一段代码
条件:
初始值
终点值(条件判断)
每次让初始值增加多少
循环的格式:
初始值
while(条件判断){
循环体;
初始值变化多少
}
执行步骤:
1. x = 1
2. x<=20 -->true-->进循环体,x变量变化后重新进行判断,只要x满足条件就会一直循环 -->false--->出程序
var x=+prompt('请输入一个数字');while (x <= 20) {document.write(x + '<br>');x++; }
while循环的格式:
初始值;
while(条件判断){
循环体
初始值的变化
}
var x = 2;while (x == 1) {alert('xx')x--;}
do while()循环格式
初始值;
do{
循环体
初始值的变化
}while(条件判断);
var x = 2;do {alert('xx')x--;} while (x == 1)
注意:do while先走{},在走判断
问题:while循环先走{}还是条件判断呢? 条件判断
while和do while不同点:
do while循环会先走循环体,在执行判断
-
for循环
for(初始值;条件判断;初始值的更新){
语句体
}
执行流程:
1. 先执行 初始值
2. 走条件判断 --->true-->进循环体{}-->初始值的更新--->重新判断--->true-->进循环体{}-->初始值的更新--->重新判断 --->false--->出程序
// 打印数字1-10for(var i=1;i<=10;i++){document.write(i + "<br>")}
for循环案例:
1. 打印 1-10内部的偶数
for (let x = 1; x <= 10; x++) {if (x%2==0){document.write(x + '<br>')}}
2. 求1-10所有数字的和
for (var i = 1; i <= 10; i++) {// i = 1 2 3 4 .. sum += i; // 通过循环,把每一个循环变量+到sum中}console.log(sum);
3. 求1-100内是3的倍数的个数
var count = 0;for (var i = 1; i <= 100; i++) { //循环了多少次(100次)// i= 1 2 3 4...100// 对i进行判断if (i % 3 == 0) { // 对1 2 3 4...100进行一个一个的判断。满足是3的倍数了count++;}}console.log(count);
4.求 100-200内所有能被5整除的数字的和
var sum = 0;for (var i = 100; i <= 200; i++) {if (i % 5 == 0) {sum += i;}}console.log(sum);
5.打印100–200之间所有能被5整除的数
//打印100–200之间所有能被5整除的数for (var x = 100; x <= 200; x++) {if (x % 5 == 0) {document.write(x + '<br>')}}
6.打印100–200之间所有能被5整除的个数
//打印100–200之间所有能被5整除的个数var count = 0;for (var x = 100; x < 200; x++) {if (x % 5 == 0) {count++;}}document.write(count + '<br>');
7.打印100–200之间所有能被5整除并且能被3整除的个数
// 打印100–200之间所有能被5整除并且能被3整除的个数var count = 0;for (var x = 100; x <= 200; x++) {if (x % 3 == 0 && x % 5 == 0) {count++;}}document.write(count + "<br>" );
8.打印100–200之间所有能被5整除并且能被3整除的数字和
// 打印100–200之间所有能被5整除并且能被3整除的数字和var sum = 0;for (var x = 100; x < 200; x++) {if (x % 3 == 0 && x % 5 == 0) {sum += x;}}document.write(sum + "<br>");
9.打印100–200之间所有不能被5整除并且能被3整除的数字和
//打印100–200之间所有不能被5整除并且能被3整除的数字和var sum = 0;for (var x = 100; x < 200; x++) {if (x % 3 == 0 && x % 5 != 0) {sum += x;}}document.write(sum + "<br>");
10.输入月份显示天数
var month = +prompt('请输入您所要查询的月份')switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:document.write('31天')break;case 4:case 6:case 9:case 11:document.write('30天')break;case 2:document.write('29或者28天')break;default:break;}
11.实现运算数和运算符计算
编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表达式data1 op data2的值,其中op可为+,-,*,/
var data1 = +prompt('请输入第一个数字');var data2 = +prompt('请输入第二个数字');var op = prompt('请输入一个运算符...');var y = 0;switch (op) {case '+':y = data1 + data2break;case '-':y = data1 - data2break;case '*':y = data1 * data2break;case '/':y = data1 / data2break;case '%':y = data1 % data2break;default:break;}document.write(y)
目录
switch语句
switch语句案例:
打断点:代码的执行顺序
三目运算符
while循环
for循环
这篇关于javaScript学习笔记(三)「switch语句」、「断点」、「三目运算」、「while循环」、「for循环」的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!