随笔 - 25, 文章 - 0, 评论 - 0, 阅读 - 3568

(三).JavaScript的分支结构和循环结构

Posted on   云语不知  阅读(62)  评论(0编辑  收藏  举报

1. 分支结构

1.1 分支语句之单分支

①.语法:

if(值,如果不是布尔值会强制转换成布尔值) {
代码块;
}

②.案例:

// 案例:如果a变量的值加键盘上输入的数大于100,就打印我爱你二狗子!
var a = 30;
// prompt():页面弹出输入框的函数,可以获取用户输入内容,返回对应的字符串
var num = parseInt(prompt('可以输入一个数字'));
if (num + a > 100) {
console.log('我爱你二狗子');
}

1.2 分支语句之双分支

①.语法:

if(值,这个值如果不是布尔值,会强转为布尔值){
代码块
}else{
代码块
}

②.案例:

var num = parseInt(prompt('请输入一个数'));
if (num > 0) {
console.log(--num);
} else {
console.log(++num);
}
// 如果双分支代码块只有一行代码,可以使用三元运算符替代
var num1 = parseInt(prompt('请输入一个数'));
num1 > 0 ? num1-- : num1++;
console.log(num1);

1.3 分支语句之多分支

①.语法:

if(值,这个如果不是布尔值,会强转为布尔值){
代码块
}else if(值,这个如果不是布尔值,会强转为布尔值){
代码块
}else if(值,这个如果不是布尔值,会强转为布尔值){
代码块
}else{
代码块
}

②.案例:

// 输入体重判断属于什么样的体型
// 70 - 90 骨感美
// 90 - 120 性感美
// 120 - 150 微胖美
// 150 - 200 丰满美
// 200 -300 灵魂美
var weight = parseInt(prompt('输入你的体重'));
// 注意点:不可以使用 70<=weight<=90这种写法
// 原因:70<=weight 返回true或false 与后面的90比较会转换成数字0或1,与原先的语义不一致
if (weight >= 70 && weight <= 90) {
console.log('骨感美');
} else if (weight >= 90 && weight <= 120) {
console.log('性感美');
} else if (weight >= 120 && weight <= 150) {
console.log('微胖美');
} else if (weight >= 150 && weight <= 200) {
console.log('丰满美');
} else if (weight >= 200 && weight <= 300) {
console.log('灵魂美');
} else {
console.log('请输入70 - 300之间的数');
}

1.4 分支语句之 switch case

①.语法

1. key是一个值,不会进行转化
2. 从上到下,当key与value全等于的时候会进入该分支,只有遇到break才会跳出switch
如果没有匹配的case分支,会执行最后的default默认分支
switch (key) {
case value:
代码块;
break;
case value:
代码块;
break;
...
default:
break;
}

break:用来跳出循环

②.案例

// 1.输入一个数字,判断是星期几
var day = parseInt(prompt('请输入一个(1-7)的数字'));
// 注意点
// 1、值的判断使用的是 ===
// 2、进入某个分支,只有遇到break才能跳出switch
switch (day) {
case 1:
console.log('今天是周一');
break;
case 2:
console.log('今天是周二');
break;
case 3:
console.log('今天是周三');
break;
case 4:
console.log('今天是周四');
break;
case 5:
console.log('今天是周五');
break;
case 6:
console.log('今天是周六');
break;
case 7:
console.log('今天是周日');
break;
default:
console.log('输入1到7的数字');
break;
}
// 2. 输入分数,判定优良差和不及格(多分支版本 switch版本)
// 90 ~ 100 A
// 80~90 B
// 70~80 C
// 60~70 D
// 0~ 60 不及格
// 其它 提示
var score = parseInt(prompt('请输入你的分数'));
// 这种true的用法也需要注意
switch (true) {
case score >= 90 && score <= 100:
console.log('A');
break;
case score >= 80 && score <= 90:
console.log('B');
break;
case score >= 70 && score <= 80:
console.log('C');
break;
case score >= 60 && score <= 70:
console.log('D');
break;
case score >= 0 && score <= 60:
console.log('不及格');
break;
default:
console.log('请输入一个0-100的分数');
break;
}
// 3.输入年龄 判定是童年少年青年中年老年
var age = parseInt(prompt('输入年龄'));
switch (true) {
case age > 0 && age <= 6:
console.log('童年');
break;
case age > 6 && age <= 18:
console.log('少年');
break;
case age > 18 && age <= 30:
console.log('青年');
break;
case age > 30 && age <= 50:
console.log('中年');
break;
case age > 50:
console.log('老年');
break;
default:
console.log('请输入正确的年龄。');
}

2. 循环结构

2.1 for 循环

①.语法

for (初始化表达式,条件表达式,自增自减表达式){
循环体;
}

②.执行流程

循环执行过程
1.首次执行
1-1 执行初始化表达式
1-2 执行条件表达式(符合条件执行循环体,不符合跳出循环)
1-3 执行循环体
1-4 执行自增自减表达式
2.非首次执行
2-1 执行条件表达式 (符合条件执行循环体,不符合跳出循环)
2-2 执行循环体
2-3 执行自增自减表达式

③.总结

1. 首次执行和非首次执行 区别在于是否执行初始化表达式
2. 循环的此时看i 每次循环中的i都会变化
3. 循环的结束条件,条件表达式的值为false

④.案例

// 打印1-100之间的整数
for (var i = 1; i <= 100; i++) {
// console.log(i);
}
// 打印1-100之间的偶数
for (var index = 1; index <= 100; index++) {
if (index % 2 == 0) {
// console.log(index);
}
}
// 计算1到100的和
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
// console.log(sum);
// 计算1-100之间所有偶数的和
var sum = 0;
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0) {
sum += i;
}
}
// console.log(sum);
// 计算100的阶乘 1*2....*100
var sum = 1;
for (var i = 1; i <= 100; i++) {
sum *= i;
}
// console.log(sum);
// 打印三位数位上有3或者7的数字
for (var i = 100; i < 1000; i++) {
var x = parseInt(i / 100);
var y = parseInt(i / 10 % 10);
var z = i % 10;
if (x == 3 || x == 7 || y == 3 || y == 7 || z == 3 || z == 7) {
// console.log(i);
}
}
// 求100 - 999之间的水仙花数
for (var i = 100; i <= 999; i++) {
var x = parseInt(i / 100);
var y = parseInt(i / 10 % 10);
var z = i % 10;
if (x * x * x + y * y * y + z * z * z == i) {
console.log(i);
}
}
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示