JavaScript提供了丰富的语句来控制程序的执行流程,包括用于条件判断的if、switch和三元运算符,以及用于循环的for、while、do...while、for...in和for...of。此外,还有控制流语句如break、continue和return。
判断语句
if 语句
if 语句:用于基于条件执行代码块。语法如下:
if (condition) {
// 条件为真时执行的代码
}
定义变量记录一个分数,小于60分,在控制台上输出 “成绩不及格”。
完整代码:
var score = 56;
if(score < 60) {// 符合条件的情况下,就进入执行 {} 中代码
console.log("成绩不及格");
}
if...else 语句
if...else 语句:在条件为假时提供一个备选的代码块。语法如下:
if (condition) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
定义变量记录一个分数,大于等于60分,在控制台上输出 “成绩及格”,否则,输出“成绩不及格”。
完整代码:
<script>
var result = 40;
if (result >= 60) {
// 符合条件,执行if作用域 {} 的代码
console.log("成绩及格");
}
else {
// 否则,执行else作用域 {} 的代码
console.log("成绩不及格");
}
</script>
if...else if...else 语句
if...else if...else 语句:允许多个条件的判断。 语法如下:
if (condition1) {
// 第一个条件为真时执行的代码
} else if (condition2) {
// 第二个条件为真时执行的代码
} else {
// 所有条件都不满足时执行的代码
}
定义变量记录一个分数,根据以下给出的参数做判断。
// 基础很差 0 ~ 39
// 基础差 40 ~ 59
// 基础好 60 ~ 79
// 基础很好 80 ~ 100
// 未知分数
完整代码:
<script>
// 3) 定义变量记录一个分数,根据以下给出的参数做判断
// 基础很差 0 ~ 39
// 基础差 40 ~ 59
// 基础好 60 ~ 79
// 基础很好 80 ~ 100
// 未知分数
var value = 65;
if (value >= 0 && value <= 39) {
console.log("基础很差");
}
else if (value >= 40 && value <= 59) {
console.log("基础差");
}
else if (value >= 60 && value <= 79) {
console.log("基础好");
}
else if (value >= 80 && value <= 100) {
console.log("基础很好");
}
else {
console.log("未知分数");
}
</script>
三元运算符
三元运算符:一种简洁的条件表达式。相当于if...else,可以返回一个结果。语法如下:
条件是否成立?条件成立执行代码:条件不成立执行代码
let result = condition ? value1 : value2;
判断b和c的大小,如果b大于c,则d等于b,否则等于c。
完整代码:
<script>
// 判断b和c的大小,如果b大于c,则d等于b,否则等于c
var b = 10;
var c = 20;
var d = b > c ? b : c;
console.log(d);
</script>
循环语句
循环是重复执行的意思,可以减少重复冗余的代码。
for 循环
for 循环:用于重复执行一段代码直到条件不再满足。语法如下:
for (初始化; 终止条件; 自增 / 自减) {
循环体
}
程序首先执行代码1,代码2,进入循环体,走出循环体,最后执行代码3。
代码1:初始化一个值
代码2:条件(要合理,否则出现死循环)
代码3:控制值改变
for(代码1; 代码2; 代码3){
循环体
}
假设需要从0打印到9,初始化值为0,条件是小于10,自增。
代码如下:
for (let i = 0; i < 10; i++) {
console.log(i); // 打印0到9
}
while循环
while 循环:只要条件为真,就重复执行代码块,与for相同,需要有条件和自增/自减,否则程序会陷入死循环。语法如下:
while (条件) {
代码块;
自增/自减;
}
假设现在还是要打印0到9,首先定义变量为0,while循环的条件设置为小于10,自增。
完整代码如下:
let i = 0;
while (i < 10) {
console.log(i);
i++;
}
do...while循环
do...while 循环:至少执行一次代码块,然后只要条件为真就继续执行。语法如下:
假设现在还是要打印0到9,首先定义变量为0,do是执行打印和自增,while循环的条件设置为小于10。
完整代码如下:
let i = 0;
do {
console.log(i);
i++;
} while (i < 10);
for...in 循环
for...in 循环:遍历对象的属性。语法如下:
for (const 键 in 对象) {
console.log(键, 对象[键]);
}
设置一个对象,遍历这个对象,输出属性名与属性值。
完整代码如下:
<script>
const obj = { a: 1, b: 2, c: 3 };
for (const prop in obj) {
console.log(prop, obj[prop]);
}
</script>
for...of循环
for...of 循环:遍历可迭代对象(如数组、字符串等)。语法如下:
for (const 值 of 数组) {
console.log(值);
}
定义一个数组,遍历这个数组的值。
完整代码如下:
<script>
const arr = ['apple', 'banana', 'cherry'];
for (const fruit of arr) {
console.log(fruit);
}
</script>
控制流语句
break 语句
break 语句:用于立即退出循环或switch语句,执行break语句后,循环或switch语句后续的代码都不执行。语法如下:
for (...) {
if (终止条件) {
break; // 退出循环
}
}
设置一个循环,循环10次,到第5次时退出循环,在控制台观察输出,可以发现到5就不在输出后续的,说明程序到第5次执行break语句后,直接推出了循环。
代码如下:
<script>
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 退出循环
}
console.log(i);
}
</script>
continue语句
continue语句:用于跳过当前循环的剩余代码,直接进入下一次循环。执行continue语句后,退出执行的那一次循环或switch语句,执行后续的代码。语法如下:
for (...) {
if (终止条件) {
continue; // 退出循环
}
}
设置一个循环,循环10次,到第5次时退出循环,在控制台观察输出,可以发现第5次没有输出,其他都有输出,说明只是退出了第5次循环。
完整代码如下:
<script>
for (let i = 0; i < 10; i++) {
if (i === 5) {
continue; // 退出循环
}
console.log(i);
}
</script>
return语句
return语句:用于从函数返回一个值,也有终止代码块(函数)的作用,如果有多个return,只执行第一个。
function myFunction() {
return XXX;
}
设置一个函数,返回hello world。
完整代码如下:
<script>
function myFunction() {
return 'Hello, World!';
}
console.log(myFunction());
</script>
switch语句
switch语句:用于基于不同的情况执行不同的代码块。语法如下:
switch (变量) {
case 值1:
执行代码1;
break;
case 值2:
执行代码2;
break;
default:
执行代码3;
}
定义四个方向变量(上up 下down 左left 右right),满足某个条件执行某代码。
完整代码如下:
<script>
// 定义方向变量(上up 下down 左left 右right)
var direction = "right";
// 控制流语句(分支处理)
// switch(变量) {case 分支1:执行代码; break; case 分支2:执行代码 break; }
switch (direction) {
case "right":
console.log('向右移动');
break;
case "left":
console.log('向左移动');
break;
case "up":
console.log('向上移动');
break;
case "down":
console.log('向下移动');
break;
default:
console.log('无效的方向');
break;
}
</script>