一、代码块
- 我们的程序是由一条一条的语句构成的,语句是按照自上向下的顺序一条一条执行的,在JS中可以使用{}来为语句进行分组。
- 同一个{}中的语句是一体的,它们要么都执行,要么都不执行。 一个{}中的语句我们也称为叫一个代码块。 在代码块的后边不用写分号。
- JS中的代码块只具有分组的作用,没有其他的作用。代码块内的内容,在外部是完全可见的。
二、流程控制语句 if 语句
流程控制语句:
JS中程序是从上到下一行一行执行的。
通过流程控制语句可以控制程序的执行流程
使流程可以根据一定的条件来选择执行。
语句的分类:
- 条件判断语句
- 条件分支语句
- 条件循环语句
(1)条件判断语句
条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立则不执行。
if语句:
语法一:
if(条件表达式){
语句
}
if语句在执行时,会先对条件表达式进行求值判断。
如果条件表达式的值为true,则执行if后的语句。
如果条件表达式的值为false,则不会执行if后的语句。
if语句只能控制紧随其后的那个语句,如果希望if语句可以控制多条语句,可以将这些语句统一放到代码块中。
if语句中的代码块不是必须的,但是在开发中尽量写上,即使只有一条语句。
语法二:
if(条件表达式){
语句…
}else{
语句…
}
如果条件表达式的值为true,则执行if后的语句。
如果条件表达式的值为false,则不会执行else后的语句。
语法三:
if(条件表达式){
语句…
}else if(条件表达式){
语句…
}else if(条件表达式){
语句…
}else{
语句…
}
当该语句执行时,会从上到下依次对条件表达式进行求值判断。
如果值为true,则执行当前语句。
如果值为false,则继续向下执行。
该语句中,只会有一个代码块被执行,一旦被执行,就结束运行。
prompt()函数可以弹出一个提示框,该提示框中会带一个文本框。
用户可以在文本框中输入一段内容,该函数需要一个字符串作为参数,该字符串将会作为提示框的提示文字。
用户输入的内容将会作为函数的返回值返回,可以定义一个变量来接收该内容。
var gar=prompt(“请输入成绩:”);
例题:
var gar=prompt("请输入成绩:");
if(gar==100){
alert("奖励一辆BMW");
}else if(gar>=80&&gar<=90){
alert("iphone15s");
}else if(gar>=60&&gar<80){
alert("奖励一本参考书");
}else{
alert("什么奖励也没有");
}
prompt()函数的返回值是String类型的,如果是需要返回值类型是number,可以直接在用“+” +prompt()
三、条件分支语句 switch语句
语法:
switch(条件表达式){
case 表达式:
语句...
break;
case 表达式:
语句...
break;
case 表达式:
语句...
break;
default:
语句...
}
执行流程:
switch…case…语句:在执行时会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较:
如果比较结果为true,则从当前case处开始执行代码。之后的代码都会被执行,所以需要加上break来退出switch语句。
如果比较结果为false,则继续向下比较。
如果所有的比较结果都为false,则执行default后的语句。
switch语句和if语句的功能实际上有重复的,使用switch可以实现if的功能,同样使用if也可以实现switch的功能,可以根据自己的习惯选择。
四、循环语句 while语句
通过循环语句可以反复执行一段代码多次。
while循环语法:
while(条件表达式){
语句......
}
执行顺序:
先对条件表达式进行求值判断
如果值为true,则执行循环体
然后再对条件表达式进行判断,以此类推
如果值为false,则终止循环。
var n=1
while(true){
alert(n++);
}
向这种将条件表达式写为true的循环,叫做死循环。
该循环永远不会停止,除非浏览器关闭,死循环在开发中慎用。
可以使用break,来终止循环。
var n=1
while(true){
alert(n++);
//判断n是否到了10
if(n==10){
break;//退出循环
}
}
创建一个循环,往往需要三个步骤:
- 创建初始化一个变量
var i=0;
- 在循环中设置一个条件表达式
- 定义一个更新表达式,每次更新初始化变量
while(i<10){
i++;
}
五、do…while循环
语法:
do{
语句...
}while(条件表达式)
执行流程:
do...while语句在执行时,会先执行循环体
循环体执行完毕后
在对while后的条件表达式进行判断
如果结果为true,则继续执行循环体,执行完毕继续判断,以此类推。
如果结果为false,则终止循环,
实际上,while语句和do…while两个语句功能类似
不同的是while是先判断后执行
而do…while是先执行后判断。
区别:
do…while可以保证循环体至少执行一次,而while不能。
六、for循环
for循环语句,为我们提供了专门的位置用来放三个表达式:
- 初始化表达式
- 条件表达式
- 更新表达式
for循环语法:
for(1.初始化表达式;2.条件表达式;4.更新表达式){
3.语句.....
}
for循环执行流程:
1.执行初始化表达式,初始化变量(初始化表达式只会执行一次)
2.执行条件表达式,判断是否执行循环
如果为true,则执行循环3
如果为false,终止循环
3.执行更新表达式,更新表达式执行完毕继续重复2
for循环中的三个部分都可以省略
也可以写在外部
如果for循环中不写任何表达式,只写两个“;;”
此时循环是一个死循环,会一直执行下去,慎用!!!
例题:水仙花数
//水仙花
for(var i=100;i<1000;i++){
//获取百位的数字
var bai=parseInt(i/100);
//获取十位的数字
var shi=parseInt((i-bai*100)/10);
//获取个位的数字
var ge=(i-bai*100-shi*10);//var ge=i%10
if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i){
console.log(i);
}
}
例题:判断一个数是否为质数
var num=prompt("请输入一个数:");
//判断这个数是否合法
if(isNaN(num)){
alert("请重新输入一个数字!");
}else if(num<=1){
alert("该值不合法");
}else{
//判断num是否是质数
//获取2-num之间的数
var flag=true;//保存质数的状态
for(var i=2;i<num;i++){
//判断num是否能被i整除
if(num%i==0){
//如果num能被i整除,则说明num一定不是质数
flag=false;
}
}
if(flag){
console.log(num+"是质数");
}else{
console.log(num+"不是质数");
}
}