流程控制

1、代码块

使用 {} 来创建代码块,代码块可以用来对代码进行分组,

同一个代码中的代码,就是同一组代码,一个代码块中的代码要么都执行要么都不执行

let 和 var

  • 在JS中,使用let声明的变量具有块作用域

在代码块中声明的变量无法在代码块的外部访问

  • 使用var声明的变量,不具有块作用域
  • 不过现在我们已经很少使用var去声明变量了,一般我们第一选择是const,之后使用let声明。基本上不使用var去声明变量了,因为var的作用范围太广泛,破坏了代码结构。

{
var a = 10
}

输出方式:

console.log(`需要存${year}年,最终的钱数为${money}元!`)

2、if语句

流程控制语句可以用来改变程序执行的顺序
1. 条件判断语句
2. 条件分支语句
3. 循环语句

if语句
- 语法:
if(条件表达式){
语句...
}

- 执行流程
if语句在执行会先对if后的条件表达式进行求值判断,
如果结果为true,则执行if后的语句
如果为false则不执行

if语句只会控制紧随其后其后的那一行代码,如果希望可以控制多行代码,可以使用{}将语句扩起来
最佳实践:即使if后只有1行代码,我们也应该编写代码块,这样结构会更加的清晰

如果if后的添加表达式不是布尔值,会转换为布尔值然后再运算
<script>
if(false)
alert('哈哈哈')

let a = 10
if(a > 10){
alert('a比10大')
}

// if(100){
// alert('你猜我执行吗?')
// }

if(a == 10){
alert('a的值是10!')
}
</script>

3、if-else

if-else语句

  • 语法:
    if(条件表达式){
    语句...
    }else{
    语句...
    }
  • 执行流程:
    if-else执行时,先对条件表达式进行求值判断,
    如果结果为true 则执行if后的语句
    如果结果为false 则执行else后的语句

if-else if-else语句:

  • 语法:
    if(条件表达式){
    语句...
    }else if(条件表达式){
    语句...
    }else if(条件表达式){
    语句...
    }else if(条件表达式){
    语句...
    }else{
    语句...
    }
  • 执行流程:
    if-else if-else语句,会自上向下依次对if后的条件表达式进行求值判断,
    如果条件表达式结果为true,则执行当前if后的语句,执行完毕语句结束
    如果条件表达式结果为false,则继续向下判断,直到找到true为止
    如果所有的条件表达式都是false,则执行else后的语句
    注意:
    if-else if-else语句中只会有一个代码块被执行,
    一旦有执行的代码块,下边的条件都不会在继续判断了
    所以一定要注意,条件的编写顺序
prompt() 可以用来获取用户输入的内容

它会将用户输入的内容以字符串的形式返回,可以通过变量来接收

// prompt() 可以用来获取用户输入的内容
// 它会将用户输入的内容以字符串的形式返回,可以通过变量来接收
let num = +prompt("请输入一个整数:")
alert(typeof num)
<script>
if(age >= 18 && age < 30){
alert('你已经成年了!')
}else if(age >= 30 && age < 60){
alert('你已经步入中年了!')
}else if(age >= 60){
alert('你已经退休了!')
}
</script>

练习1

<script>
/*
- 练习1:
编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。
*/
// 编写一个程序,获取一个用户输入的整数
// let num = +prompt("请输入一个整数")
let num = parseInt(prompt("请输入一个整数"))

// 验证一下,用户的输入是否合法,只有是有效数字时,我们才检查它是否是偶数
// 我们不能使用==或===来检查一个值是否是NaN
// 可以使用isNaN()函数来检查一个值是否是NaN
if (isNaN(num)) {
alert("你的输入有问题,请输入整数!")
} else {
// 然后通过程序显示这个数是奇数还是偶数。
if (num % 2 === 0) {
alert(`${num} 是偶数!`)
} else {
alert(`${num} 是奇数!`)
}
}
</script>

练习2

<script>
/*
- 练习1:
编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。
*/
// 编写一个程序,获取一个用户输入的整数
// let num = +prompt("请输入一个整数")
let num = parseInt(prompt("请输入一个整数"))

// 验证一下,用户的输入是否合法,只有是有效数字时,我们才检查它是否是偶数
// 我们不能使用==或===来检查一个值是否是NaN
// 可以使用isNaN()函数来检查一个值是否是NaN
if (isNaN(num) || num % 1 !== 0) {
alert("你的输入有问题,请输入整数!")
} else {
// 然后通过程序显示这个数是奇数还是偶数。
if (num % 2 === 0) {
alert(`${num} 是偶数!`)
} else {
alert(`${num} 是奇数!`)
}
}
</script>

练习3

<script>
/*
- 练习3:
大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
高:180cm以上; 富:1000万以上; 帅:500以上;
如果这三个条件同时满足,则:'我一定要嫁给他'
如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'
如果三个条件都不满足,则:'不嫁!'
*/

// 获取男生的数据(身高、财富、颜值)
let height = +prompt('请输入你的身高(厘米):')
let money = +prompt('请输入你的身价(万):')
let face = +prompt('请输入你的颜值(像素):')

// height 180↑ money 1000↑ face 500↑
if(height>180 && money>1000 && face>500){
// 如果这三个条件同时满足,则:'我一定要嫁给他'
alert('我一定要嫁给他!')
}else if(height>180 || money>1000 || face>500){
// 如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'
alert('嫁吧,比上不足,比下有余。')
}else{
// 如果三个条件都不满足,则:'不嫁!'
alert('不嫁!')
}
</script>