分支结构:
程序本质分为三大结构: 顺序结构 | 分支结构 if|switch | 循环结构 for|while|do...while
根据程序代码执行的方式 划分为 三大结构
// 逻辑运算符 => 类似于 if单分支结构
// 三目运算符 => 类似于 if...else分支结构
/* py 语法
if 条件表达式:
代码块;
js 语法
if (表达式) {
代码块
}
*/
if (1) {
var a = 10;
let b = 20;
console.log("d:%d只能在块级作用域中访问", b);
}
console.log("a:%d在块级作用域内外都可以访问", a);
/* 全语法
if (表达式1) {
} else if () {
}
...
else if () {
}
else {
}
*/
/*
if 与 if直接可以随意嵌套
*/
var salary = prompt("请输入所发工资:");
if (salary > 0) {
console.log("工资已发, 打算还账!");
salary -= 100000;
if (salary > 0 ) {
console.log("拯救世界...");
} else if (salary == 0) {
console.log("家里蹲, 峡谷见");
} else {
console.log("借钱, 填窟窿, 谁来拯救我...");
console.log("借%d元钱", -salary);
}
} else {
console.log("拿我刀来, 允许你跑49m");
}
switch分支
/* 语法 switch (结果为整数|字符串的表达式) { case 值1(值需要和表达式进行类型统一): 代码块; break; ... case 值n: 代码块; break; default: 代码块; } */
// 用例
var num = prompt("请输入一个自然数: "); // 输入接收的默认为字符串类型数据
var num = +num;
switch (num) {
case "0": console.log("用户输入的是数字0"); break;
case "1": console.log("用户输入的是数字1"); break;
case 0: console.log("change, 用户输入的是数字0"); break;
case 1: console.log("change, 用户输入的是数字1"); break;
default: console.log("用户输入的是数字非0和1");
}
// default分支, 出现在所有case之下, 当所有case没有匹配上, 走该分支,
// 该分支也可以省略, 代表没有未匹配到的动作
// switch()中的表达式结果为 整型 或 字符串, case的值要与其对应
// break作用是结束分支结构(结束所属switch语句), 可以省略
var month = +prompt("请输入月份");
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
console.log("%d月天数为31天", month); break;
case 4: case 6: case 9: case 11:
console.log("%d月天数为30天", month); break;
case 2:
console.log("%d月天数为28天", month);
}