(三).JavaScript的分支结构和循环结构
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);
}
}
(三).JavaScript的分支结构和循环结构的更多相关文章
- Chrome弹窗的简单应用(选择结构与循环结构)
★选择结构★ ★JS实现弹窗显示随机数 示例代码效果图 ★ 弹窗实现对随机数的进一步判断 示例代码效果图 ★综合应用 比较大小 ★ 判断成绩等级 ): : : : : alert(" ...
- 黑马程序员——JAVA基础之程序控制流结构之循环结构,循环嵌套
------- android培训.java培训.期待与您交流! ---------- 循环结构: 代表语句:while ,do while ,for while语句格式 : while(条件表达式) ...
- Java程序流程控制:判断结构、选择结构、循环结构
本文内容: 判断结构 if 选择结构 switch 循环结构 while do-while for for each break.continue return 首发时间:2017-06-22 21: ...
- 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)
选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...
- 039 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 01 循环结构概述
039 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 01 循环结构概述 本文知识点:循环结构概述 循环结构主要内容 while 循环 do-whiile ...
- java顺序结构、循环结构、选择结构
java顺序结构.选择结构.循环结构 顺序结构: 语句与语句之间,框与框之间是从上到下的顺序进行的,它是由若干个依次执行的处理步骤执组成的,它是任何一个算法都不离开的一种基本算法结构. 选择结构: 1 ...
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
- java第三课:分支结构、循环结构
分支结构 1.if后面可以不加{},但是不建议,容易产生误解2.写程序的时候先防屌丝测试,再写逻辑,否则会出错3.if:一条分支 if else:两条分支 if...else if...:多条分支(结 ...
- JS基础-----JS中的分支结构及循环结构
[分支结构] 一.if-else结构 1.结构的写法:if(判断条件){ //条件为true时,执行if的{} }else{ //条件为false时,执行else的{} } 2.注意事项 ①else语 ...
- C#学习笔记11:C#中的顺序结构、分支结构、循环结构
顺序结构: 代码从Main()函数开始运行,从上到下,一行一行的执行,不漏掉代码. Int a=6; int b=5; int c=a+b; Console.Write(c); 分支结构: 代码有可能 ...
随机推荐
- System.Data.Linq 无法引用的问题
参考文章 https://www.bbsmax.com/A/1O5EM0G457/ 已经在工程中引用了system.data.linq,但是在代码中,输入 using System.Data.Lin ...
- python使用SAP GUI操作SAP的几个坑
1) 首先必须设定SAP中设置可以使用SAP GUI Script. 详细参见以下文章: https://blog.csdn.net/weixin_44447687/article/details/1 ...
- 像MIUI一样做Zabbix二次开发(5)——那些坑和优化方向
踩过的那些坑 从2011年开始玩Zabbix,踩过的坑着实不少,被研发的同事吐了无数槽,所谓"情到深度又爱又恨".以下简述印象比较深刻的几个坑: 二次开发的方式:2011刚开始做的 ...
- 查询openmp的版本
vim test.cpp #include <unordered_map>#include <cstdio>#include <omp.h> int main(in ...
- zabbix源码目录结构
用的是今年最新的zabbix-3.0.1 bin: 包含windows下zabbix_agentd.zabbix_get.zabbix_sender的二进制程序文件和sender的二次开发需要的头文件 ...
- python下载文件headers
from aiohttp import webfrom urllib.parse import quote r = web.Response()# r.content_type = 'applicat ...
- ubuntu20.04系统openjdk11变更openjdk-8-jdk
ubuntu20.04系统openjdk11变更openjdk-8-jdk一.卸载openjdk11先检查是否安装,命令:dpkg --list | grep -i jdk移除openjdk包,命令: ...
- 树莓派4B使用花生壳phtunnel内网穿透访问本地Gogs
已经搭建好Gogs(https://www.cnblogs.com/congyinew/p/16115074.html),接下来就是想外网上传代码到Gogs 一.申请账号 https://open.o ...
- NIO 缓冲区 ByteBuffer 之黏包和半包
一.低效率方式 /** * 黏包.半包 */ private static void buffExample2() { /* 网络上传输多条数据给服务器,数据之间使用 \n 分隔. 但由于某种原因(多 ...
- DNS服务器(简)
服务端:192.168.182.187 客户端:192.168.182.16 windows客户端:192.168.182.17 1.安装相关服务 yum -y install bind bind-c ...