流程控制语句

  1. 条件语句

    1. if语句

    if语句是条件语句, 也称为选择语句. 它通常结合else一起使用, 表示如果…就…否则…

    if (测试条件) {// 语句块1// 当测试条件为真, 则执行这里
    } else {// 语句块2// 当测试条件为假, 则执行这里
    }
    

    案例1: 输入一个数字, 如果这个数是偶数, 则弹出对话框显示’偶数’, 否则弹出对话框显示’‘奇数’’

    let a = Number(prompt('请输入一个数字'));
    if (a % 2 == 0) {alert('偶数')
    } elsse {alert('奇数')
    }
    

    案例2: 输入年龄, 判断用户是否可以申领驾照. 申领驾照的条件是年龄为18到70岁

    let age = Number(prompt('请输入年龄'));
    if (age >= 18 && age <= 70){alert('可以考取驾照')
    } else {alert('年龄不符合要求')
    }
    

    在if语句中else可以省略

    let a = Number(prompt("请输入你喜欢的数字"));if (a > 5) {alert("这是我喜欢的数字!");}if (a % 2 == 0) {alert("这是偶数");}alert("88");
    

    单行if 语句 : 如果if语句体中只有一行语句, 可以省略大括号和换行

    var a = Number (prompt('请输入一个整数'));
    if(a > 5) alert('这个数字大于5');
    if(a % 2 == 0) alert('这个数字是偶数');
    alert('再见');
    
    1. if else if多条件分支

    案例1:

    let score = Number(prompt("请输入考试成绩"));if (score == 100) {alert("膜拜学霸");} else if (score >= 95) {alert("再接再厉");} else if (score >= 80) {alert("考的不错");} else if (score >= 60) {alert("及格啦");} else if (score < 60) {alert("去重读");}
    

    案例2: 计算BMI肥胖指数, 返回对应指数结果

    let weight = Number(prompt("请输入体重"));let height = Number(prompt("请输入身高"));let BMI = weight / (height * height);if (BMI > 32) {alert("非常肥胖");} else if (BMI > 28) {alert("肥胖");} else if (BMI > 24) {alert("过胖");} else if (BMI > 18.5) {alert("正常");} else {alert("过廋");}
    
    1. if 语句算法题

案例1: 判断水仙花数

水仙花数是指: 它的每个数位的数字的立方和等于它本身

// 要求用户输入一个三位数let n = Number(prompt("请输入一个三位数"));// 对用户输入的数值, 进行合法性的验证if (!isNaN(n) && n >= 100 && n <= 999) {// 当用户输入的数字合法时// 方法一 : 数学方法(复杂)/* let a = Math.floor(n / 100);let b = Math.floor(n / 10) % 10;let c = n % 10; */// 方法二 : 字符串方法let n_str = n.toString();let a = Number(n_str.charAt(0));let b = Number(n_str.charAt(1));let c = Number(n_str.charAt(2));// 根据水仙花数的条件进行判断if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == n) { // Math.pow(a, 3) 意为a 的 3 次方alert("这个数是水仙花数");} else {alert("这个数字不是水仙花数");}} else {alert("输入的数字不合法");}

案例2: 游乐园门票计算

用户输入年龄和星期几, 弹出对话框显示门票价格,

条件 年龄大于等于10岁 年龄小于10岁
平日 300 140
周末 500 210
// 用户输入星期几let day = Number(prompt("请输入星期几"));// 用户输入年龄let age = Number(prompt("请输入年龄"));// 思路: 使用if else嵌套逻辑, 先判断星期几, 再判断年龄, 最后输出if (day == 0 || day == 6) {// 在周末if (age >= 10) {// 判断年龄alert("500全票");} else {alert("210儿童票");}} else {// 不在周末if (age >= 10) {// 判断年龄alert("300全票");} else {alert("140儿童票");}}
  1. switch语句

除了if语句之外, JS还提供了另外一种选择语句: switch语句

switch语句的用途: 当一个变量被分类讨论的情形

  • 在switch()的圆括号中一般是一个变量名, 这个变量将被分类讨论
  • case表示"情况", 它后面没有圆括号, 直接跟一个值. 程序会一次将case后面的值与switch圆括号中的值进行全等比对, 如果比对相同, 则执行这条case冒号后面的语句. default表示默认情况
  • 多条case可以共用同一个语句体
  • switch语句并不像if语句那样当执行了某一个分支之后会自动跳出if语句体, 我们必须主动调用break来跳出switch语句体. 如果不书写break, 则后面的所有case都将被视为匹配, 直到遇见break

案例1:

let year = Number(prompt("请输入年份"));// 输入一个月份, 判断该月份一共有几天// 获取数据let Month = Number(prompt("请输入月份"));switch (Month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:alert("这个月有31天");break;case 4:case 6:case 9:case 11:alert("这个月有30天");break;case 2:let runnian =(year % 100 != 0 && year % 4 == 0) ||(year % 400 == 0 && year % 100 == 0);// 三元表达式写法: runnian ? alert('29天') : alert('28天')switch (runnian // switch嵌套的应用, 两个条件的场景建议用三元运算符) {case true:alert("这个月有29天");break;case false:alert("这个月有28天");break;}break;default:alert("请输入正确的月份");}
  1. 三元运算符

用途: 根据某个条件是否成立, 在两个不同值中选择变量的值

let age = 24;
let type = age >= 18 ? '成年人' : '未成年人';
alert(type);    // 成年人

条件表达式 ? 表达式1 : 表达式2

问号前是判断的条件, 问号后面用冒号隔开两个表达式, 当条件表达式为真时调用表达式1, 为假时调用表达式2.

  1. 循环语句

    1. for循环语句

作用: 简化程序.

for 的圆括号中有三个表达式:

  • 表达式var i = 1; 表示定义一个"循环变量" i, 并赋值为1;
  • 表达式i <= 10; 表示继续执行循环的条件, 只要这个条件为真, 则会一直执行;
  • 表达式i++用来更新循环变量, 使循环变量的值越来越趋向终点
for (let i = 1; i <= 10; i++) {console.log(i);}

for循环步骤解析:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YlQ6ZqmX-1650025592531)(C:\Users\lcm\Desktop\三元表达式.png)]

  • 首先会执行语句①,
  • 然后判断语句②是否满足, 如果满足则进入循环体, 执行语句③, 如果不满住则退出循环
  • 语句体中的语句执行完毕后, 执行语句④
  • 再次判断语句②是否满足, 如果满足则进入循环体, 执行语句③, 如果不满足则退出循环

根据for循环执行机理, 必须要会准确遍历for循环

练习1:

for (let i =2; i < 12; i += 3) {i += 4;console.log(i)        //输出结果: 6
}                       //        13

练习2:

for (var i = 1; i < 10; i++) {}console.log(i);       // 输出在循环体外, 打印结果为10

练习3:

for (var i = 10; i < 4; i++) {console.log(i);      // 没有输出结果, 原因是i在第二步就没有满足条件,在循环体内不做输出
}

练习4:

// 使用for循环语句在控制台逐行输出18, 14, 10, 6, 2, -2, -6for (let i = 18; i >= -6; i -= 4) {console.log(i);}

练习5:

// 使用for循环语句在控制台逐行输出0, 0.2, 0.4, 0.6, 0.8, 1for (let i = 0; i <= 1; i += 0.2) {console.log(Number(i.toFixed(1))); //.toFixed() 方法 把浮点数值转化为保留自定义长度的字符串类型的小数.括号数字表示保留多少位小数}
  1. for循环算法题

案例1: 计算1~100所有数的和

// for循环算法题// 创建累加器sum, 初始值是0// 遍历1到100的值, 每遍历一个数字要把这个数字加到sum中去for (var sum = 0, i = 1; i <= 100; i++) {sum += i;}console.log(sum);

案例2: 1~100中哪个数字除以3余1, 除以4余2, 除以5余3? 运用穷举法

// 穷举法// 请问1~100中哪个数字除以3余1, 除以4余2, 除以5余3?for (i = 1; i <= 100; i++) {if (i % 3 == 1 && i % 4 == 2 && i % 5 == 3) {console.log(i);}/*三元表达式写法let n = i % 3 == 1 && i % 4 == 2 && i % 5 == 3;n ? console.log(i) : "";*/}
  1. while循环语句

​ while语句也是一种循环结构, 是一种"不定范围"循环, 和for循环各有不同的用武之地

​ 几乎所有变成语言, 都同时提供for循环和while循环

​ while语句事先不指定循环开始, 结束的范围, 只要测试条件满足, 就一直执行循环体

​ while循环没有显示定义循环变量, 必须自己在while循环外先定义好循环变量, 有时甚至可以没有循环 变量

​ 循环体内的语句, 必须睡循环测试条件趋于不成立, 否则会死循环

案例1:

// 输出1,2,3,4....100
var i = 1;
while(i<100){i++;console.log(i)
}

案例2:

// 累加1-100的和let sum = 0;let i = 1;while (i <= 100) {sum += i;i++;}console.log(sum);

案例3:

// 寻找满足n的平方大于456789的最小整数// 穷举法, 从1开始let n = 1;while (n * n <= 456789) {n++;}console.log(n);
// 小兔子拔萝卜, 第一天拔1个, 第二天拔2个, 第三天拔3个, 以次类推, 请问小兔子多少天能500个萝卜拔完?let d = 1,sum = 0;while (sum < 500) {sum += d;d++;}// 这里有一个"出一错误"console.log(d - 1);
    1. break和continue

    break案例

    let n = 1;while (true) {if (n * n > 456789) {console.log(n);break;}n++;}
    

    continue案例

    // contiinue 跳过当前迭代, 进入下一个循环for (let i = 0; i < 5; i++) {if (i == 2 || i == 3) {//表示跳过2和3continue;}console.log(i); //输出结果是0, 1, 4}
    
    1. do while 语句

    案例1

    // do while 循环是后判断的循环形式, 能至少执行一次循环体do {console.log("★");} while (false);// 输出1, 2, 3.....100let n = 1;do {console.log(n);n++;} while (n <= 100);
    

    案例2

    得到[a, b]区间的整数, 注b>a

    公式:

    parseInt(Math.random()*(b-a+1)) + a

    // 随机生成两个变量dx和dy, 它们均在[-4, 4]取件随机取值, 但要求dx和dy不能同时为0do {var dx = parseInt(Math.random() * 9) - 4;var dy = parseInt(Math.random() * 9) - 4;} while (dx == 0 && dy == 0);// 只要出循环, 就保证dx和dy不都是0console.log(dx, dy);
    
    1. while语法算法题

    猜数字案例, 猜到正确数字退出循环

    // 随机一个数字, 2~99之间let answer = parseInt(Math.random() * 98) + 2;let min = 1,max = 100;// 不断重复执行, 需要使用死循环while (true) {// 询问用户猜测的数字let n = Number(prompt("请猜测数字" + min + "~" + max));// 判断用户输入的数字和answer的关系if (n > answer) {alert("你输入的数字太大了");max = n;} else if (n < answer) {alert("你输入的数字太小了");min = n;} else {alert("猜对了!");break;}}console.log(dx, dy);
    
  1. 初识算法

    1. 什么是算法

    2. 累加器和类乘器

    // 由用户输入数字n, 计算3/2 +4/3 + 5/4 + ...... +(n+1)/n的结果// 用户输入输在nlet n = Number(prompt("请输入数字n"));// 累加器let sum = 0;// 遍历分母就可以了, 因为分子就是i分母就是for (let i = 2; i <= n; i++) {sum += (i + 1) / i;}alert(sum.toFixed(2));
    
    // 计算阶乘// 请用户输入数字nlet n = Number(prompt("请输入数字"));// 类乘器, 一定注意, 累乘器要从1开始, 因为如果从0开始, 0乘以任何数都为0let result = 1;// 倒着遍历, 计算阶乘for (var i = n; i >= 1; i--) {result *= i;}alert(result);
    
    1. 穷举法
    // 穷举法
    // 寻找1~100当中的既能被3整除, 也能被5整除的数字for (let i = 1; i <= 100; i++) {if (i % 3 == 0 && i % 5 == 0) {console.log(i);}}
    
    // 寻找约数// 让用户输入数字nlet n = Number(prompt("请输入数字"));// 穷举法for (let i = 1; i <= n; i++) {if (n % i == 0) {console.log(i);}}
    
    // 寻找水仙花数for (let i = 100; i < 1000; i++) {// 水仙花数要拆数位// a, b, c分别表示百位, 十位, 个位let i_str = i.toString();let a = i_str.charAt(0);let b = i_str.charAt(1);let c = i_str.charAt(2);if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {console.log(i);}}
    
    1. 综合算法题目
    // 循环嵌套for (let i = 0; i < 3; i++) {for (let j = 0; j < 3; j++) {console.log(i, j);}}
    
// 寻找100以内的质数// 穷举法outer: for (let i = 2; i <= 100; i++) {// 内层循环开始从2开始尝试除i, 如果能够整除, 说明它不是质数, 就可以筛选下一个数字了for (let j = 2; j < i; j++) {if (i % j == 0) {continue outer; // 给外层循环命名, 并调用}}console.log(i);}

JavaScript-流程控制语句(笔记)相关推荐

  1. JavaScript流程控制语句

    JavaScript流程控制语句 4.1.语句的定义 ​ 在ECMAScript 中,所有的代码都是由语句来构成的.一行代码就是一条简单语句.形式上可以是单行语句,或者由一对大括号"{}&q ...

  2. (七)JavaScript 流程控制语句

    文章目录 JavaScript 流程控制语句 一.选择语句 1. if 语句 (1) if 语句的基本使用 (2) if else if 多条件分支 2. switch 语句 (1) switch 语 ...

  3. JavaScript-->流程控制语句*笔记

    <!DOCTYPE html> <html><head><meta charset="utf-8"><meta name=&q ...

  4. [JavaWeb-JavaScript]JavaScript流程控制语句

    流程控制语句: 1. if...else...2. switch:* 在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7) ...

  5. JavaScript—流程控制语句的合集

    目录 流程控制 条件判断语句 流程控制 条件判断语句 条件分支语句 循环语句 条件判断语句 if语句 语法:if(条件表达式){语句}-------if(a > 10){alert('a比10大 ...

  6. JavaScript 流程控制语句

    1.if语句 1 <script> 2 $(document).ready(function(){ 3 $("#Button1").click(function(){ ...

  7. 从零开始学WEB前端——JavaScript流程控制语句

  8. web前端-JavaScript流程控制语句(条件判断,条件分支和循环语句)

  9. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  10. javascript基本语法(输入输出语句,变量常量,数据类型,运算符,流程控制语句,数组,函数)

    javascript javascript介绍 JavaScript 是一种客户端脚本语言.运行在客户端浏览器中,每一个浏览器都具备解析 JavaScript 的引擎. 脚本语言:不需要编译,就可以被 ...

最新文章

  1. linux 内核编译错误 Makefile:416: *** mixed implicit and normal rules: deprecated syntax
  2. python输入ip地址_python批量生成本地ip地址的方法
  3. python弹出警告框_selenium+webdriver+python 中警告框的处理方法
  4. python文件字符串操作
  5. 架构设计系列(一)——架构设计概述
  6. 2017-2018-1 20155227 《信息安全系统设计基础》第四周学习总结
  7. 在DBGrid中实现Copy、Paste功能 - DELPHI
  8. Windows10使用Anaconda安装TensorFlow-GPU
  9. 实用防火墙(Iptables)脚本分析
  10. 分时操作系统与实时操作系统的区别
  11. 人生感悟经典哲理句子,句句都是人生哲理!
  12. OrCAD Capture CIS 16.6 - 为元器件添加属性
  13. Android Drawable 与 LayerList综合汇总
  14. 【数学建模】经典简单例题实例1
  15. 声纹识别与声源定位(一)
  16. kotlin——观察者模式
  17. 全加器——Verilog HDL语言
  18. Excel中offset函数的使用方法
  19. 【智能制造】智能制造技术与数字化工厂应用!
  20. 计算机网络原理参考资料,《计算机网络原理》3 (2021)在线作业参考资料

热门文章

  1. python-取余问题的详细解读
  2. 仿WPS便签,鲨鱼记账app
  3. iOS缓存设计(YYCache思路)
  4. 数据资产管理-简单总结
  5. gojs 流程图框架-节点装饰器模板(二)
  6. 用java实现简单递归
  7. 七年级下学期计算机考试题,七年级下册英语单元考试试题及答案
  8. 设计模式——状态模式详解
  9. Java Stream API(一)
  10. 接收雅虎邮件时如何设置“您有邮件”语音。