代码块
- 程序是由一条一条语句构成的,语句是按照自上向下的顺序一条一条执行的
- 在JS中可以使用{}来为语句进行分组
- 同一个{}中的语句成为一组语句,它们要么都执行,要么都不执行
- 一个{}中的语句也称作一个代码块,代码块的后面就不用再编写;了
- JS中的代码块只具有分组的作用,没有其他的用途,代码块内的内容外部是完全可见的
(一)流程控制语句
- 通过流程控制语句可以控制程序执行流程,使程序可以根据一定的条件来选择执行
- 语句的分类:
1.条件判断语句
2.条件分支语句
3.循环语句
(二)条件判断语句
- 使用条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,不成立则不执行
- if 语句:该语句中只会执行一个代码块,一旦执行了,则不再往下进行
-
语法一:
if(条件表达式) {代码块}
-
语法二:
if() {} else {}
-
语法三:
if() {} else if() {} else {}
-
if(true)
console.log("true执行");
var a = 15;
if(a > 10 && a < 15){
console.log("10 < a < 20");
}
(三)prompt函数
prompt()可以弹出一个提示框,该提示框会带有一个文本框,该用户可以在文本框中输入一段内容
- 该函数需要一个字符串作为参考,该字符串将会作为提示框的提示文字
- 用户输入的内容是String类型,将会作为函数的返回值返回,可以定义一个变量来接收该内容
var num1 = +prompt("请输入数值1:");
var num2 = +prompt("请输入数值2:");
var num3 = +prompt("请输入数值3:");
console.log(num1, num2, num3)
var max, middle, min;
if(num1 >= num2){
if (num1 >= num3){
max = num1;
if(num2 >= num3){
middle = num2;
min = num3;
}else{
middle = num3;
min = num2;
}
} else if(num2 >= num3){
max = num2;
middle = num3;
} else{
middle = num3;
min = num2;
}
} else if(num2 >= num3){
max = num2;
if(num1 > num3){
middle = num1;
min = num3;
}else{
middle = num3;
min = num1;
}
} else {
max = num3;
middle = num2;
min = num1;
}
console.log(max + ">=" + middle + ">=" + min);
(四)switch语句
switch语句:条件分支语句
-
语法:
switch(条件表达式){ case 表达式: 语句... break; case 表达式: 语句... break; case 表达式: 语句... break; default: 语句... break; }
-
执行流程:
switch…case…语句
在执行时会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较
如果比较结果为true,则从当前case处开始执行代码,当前代码之后的都会执行
使用break可以退出switch语句,每个case后面执行一个break,确保只执行当前语句
如果比较结果为false,则继续向下比较
var score = +prompt("请输入成绩");
switch(true){
case score >= 60:
console.log("合格");
break;
default:
console.log("不合格");
break;
}
(五)循环语句
-
创建一个循环往往需要三个步骤
1.初始化一个变量 2.在循环中创建一个条件表达式 3.定义一个更新表达式,每次更新初始化变量
-
while循环
-
语法:
while(条件表达式){ 语句... }
-
while语句在执行时,先对条件表达式进行求值判断
如果值为true,则继续执行循环体,循环体执行完毕之后,继续对条件表达式进行判断,如果为true继续执行循环体,以此类推 如果值为false,则终止循环
-
-
do…while循环:
-
语法:
do{ 语句... }while()
-
执行流程:
do…while语句先执行循环体再进行条件表达式
-
-
for 循环
-
语法:
for(初始化表达式;条件表达式;更新表达式){ 语句... }
-
执行流程:
1)执行初始化表达式,初始化变量 2)执行条件表达式,如果为true,执行循环语句,如果为false终止循环 3)执行更新表达式,更新表达式执行完毕重新执行条件表达式
-
for循环中的三个部分都可以省略,也可以写在外面
-
for循环中如果三个表达式都不写,只写两个分号,则是个死循环
-
// while循环
var begin = 1000, year = 0;
while(begin < 5000){
begin = begin * 1.05
year++;
}
console.log(year);
// for循环
var total = 0;
for(var i = 1;i <= 100;i++){
if(i % 2 != 0){
total = total + i;
}
}
console.log("total = "+total);
// 七的倍数问题
var sevennum = 0, sevensum = 0;
for(var i = 1;i <= 100;i++){
if(i % 7 == 0){
sevennum++;
sevensum = sevensum + i;
}
}
console.log("sevennum="+sevennum, "sevensum="+sevensum);
// 水仙花问题
console.log("水仙花");
for(var i = 100;i <= 999;i++){
var flower1 = parseInt(i / 100);
var flower2 = parseInt(i % 100 / 10);
var flower3 = parseInt(i % 10);
var flowersum = flower1*flower1*flower1+flower2*flower2*flower2+flower3*flower3*flower3;
flowersum
if(flowersum == i){
console.log(i);
}
}
console.log("质数问题");
var number = +prompt("请输入一个大于1的自然数来判断是不是质数:")
var sta = 0;
for(var i = 2;i <number;i++){
if(number%i==0){
sta++;
}
}
if(sta == 0){
console.log("您输入的是个质数");
}else{
console.log("您输入的不是质数");
}
console.log("开始画图啦");
var line = +prompt("请输入层数:");
for(var i = 1;i<=line;i++){
for(j = 1;j <= i;j++){
document.write("*");
}
document.write("</br>");
}
console.log("打印九九乘法表啦");
for(var i = 1;i <= 9;i++){
for(j = 1;j <= i;j++){
ji = i*j;
document.write("<span>"+j+"*"+i+"="+i*j+"</span>");
}
document.write("<br />");
}
(六)break 和 continue
- break关键字可以用来退出switch或循环语句,break关键字会立即终止离他最近的那个循环语句
- 可以为循环语句创建一个label,来表示当前的循环
格式:label:循环语句
使用break语句时,可以在break后跟着一个label,这样break将会结束制定的循环,而不是最近的- continue关键字可以用来跳过当前循环,进入下一轮循环,同时continue也是默认对最近的循环起作用
// 循环起名-区别内外层
outer:
for(var i=0;i<5;i++){
console.log("@外层循环"+i);
for(var j=0;j<5;j++){
break outer;
console.log("#内层循环:"+j);
}
}
<style type="text/css">
span{
display: inline-block;
width: 80px;
}
</style>