分支判断与循环

分支结构

  • 单一选择结构(if)
  • 二路选择结构(if/else)
  • 内联三元运算符 ?:
  • 多路选择结构(switch)
  1. var condition = true;
  2. if (condition) {
  3. alert("我将出现!");
  4. }
  5. condition = false;
  6. if (condition) {
  7. alert("我不会出现!");
  8. } else {
  9. alert("我会出现!");
  10. }
  11. condition ="some string";
  12. if (condition) {
  13. alert("可以直接对任何数据类型进行if判断,在判断时计算会自动将其转换成布尔值!");
  14. }
  15. var val = condition?"当为true时我将被返回":"当为false时我将被返回";
  16. alert(val);//将输出"当为true时我将被返回"

对于if..else语句,如果要执行的语句只有一条,可以不使用“{}”,但这种写法并不推荐.但确实这样可以简化代码:

  1. var str ="one";
  2. if (str=="one") alert("str的值为字符串'one' !");
  3. else alert("not one");

虽然JavaScript中没有if .... elseif 结构,但可以使用if...else的简写方式得到

  1. //为了判断用户输入的成绩的范围,我们使用了多重嵌套的if .. else语句
  2. var num = window.prompt("请输入XXX的成绩!","");
  3. num *=1;//window.prompt方法始终只返回字符串,用这样的方法将其转换成数字
  4. if (isNaN(num) && num) {//不能将其它值转换成数字时将返回NaN,可以用内置的isNaN判断值是否是NaN
  5. alert("您输入的不是一个数字!");
  6. } else {
  7. if (num<=100 && num>=90) {
  8. alert("Excellent!");
  9. } else {
  10. if (num <90 && num>=80) {
  11. alert("Good!");
  12. } else {
  13. if (num < 80 && num >= 70) {
  14. alert("So so!");
  15. } else {
  16. if (num < 70 && num >=60) {
  17. alert("Be careful !!!");
  18. } else {
  19. if (num < 60 && num >= 0) {
  20. alert("Oh, NO!");
  21. } else {
  22. alert("USB!");
  23. }
  24. }
  25. }
  26. }
  27. }
  28. }
  29. //上面的代码由于用了多重的if..else嵌套,显得非常的混乱,简化只须将else后的花括号去掉就行了
  30. // if (...) {...}这算是一句
  31. if (isNaN(num)) {
  32. alert("您输入的不是一个数字!");
  33. } else if (num<=100 && num>=90) {
  34. alert("Excellent!");
  35. } else if (num <90 && num>=80) {
  36. alert("Good!");
  37. } else if (num < 80 && num >= 70) {
  38. alert("So so!");
  39. } else if (num < 70 && num >=60) {
  40. alert("Be careful !!!");
  41. } else if (num < 60 && num >= 0) {
  42. alert("Oh, NO!");
  43. } else {
  44. alert("USB!");
  45. }
  46. //看上去清晰多了,但要注意的是,JavaScript中没有elseif 这样的语法,所以上的else if之间是有空格的

用于进行多次判断的switch语句

  1. switch(condition) { //switch本来就是跳转的意思(又称为“开关”),所以switch语句就是判断情况,跳到符合的情况开始执行
  2. case 4:
  3. alert("c的值是4");
  4. case 3:
  5. alert("c的值肯定大于等于3");
  6. case 2:
  7. alert("c的值肯定大于等于2");
  8. case 1:
  9. alert("c的值肯定大于等于1");
  10. }
  11. //可以使用 break来只执行符合一个条件的语句
  12. switch(condition) {
  13. case 4:
  14. alert("c的值是4");
  15. break;
  16. case 3:
  17. alert("c的值是3");
  18. break;
  19. case 2:
  20. alert("c的值是2");
  21. break;
  22. case 1:
  23. alert("c的值是1");
  24. break;
  25. }
  26. var condition="one";
  27. switch(condition) {//switch不但可以用来判断数字,还可以判断字符串,甚至是不定的变量
  28. case "one":
  29. alert("condition的值是字符串'one' !");
  30. break;
  31. case "three":
  32. alert("condition的值是字符串'three' !");
  33. break;
  34. case "four":
  35. alert("condition的值是字符串'four' !");
  36. break;
  37. case "five":
  38. alert("condition的值是字符串'five' !");
  39. break;
  40. default://当所有情况都不匹配时,将执行default语句后的
  41. alert("我们要万无一失!condition什么都不是!");
  42. }

循环

循环用来指明当某些条件保持为真时要重复的动作。当条件得到满足时,就跳出循环语句。在 JavScript 中有四种循环结构可用。

  • 由计数器控制的循环(for)
  • 在循环的开头测试表达式(while)
  • 在循环的末尾测试表达式(do/while)
  • 对对象的每个属性都进行操作(for/in)

for 语句指定了一个计数器变量,一个测试条件,以及更新该计数器的操作。在每次循环的重复之前,都将测试该条件。如果测试成功,将运行循环中的代码。如果测试不成功,不运行循环中的代码,程序继续运行紧跟在循环后的第一行代码。在执行该循环后,计算机变量将在下一次循环之前被更新。

  1. for (var i=0;i<10;i++) {//for循环的圆括号里面须放三个句子,分别是1.初使化计数器 2.判断条件 3.更新计数器
  2. alert("i当前的值为"+i);
  3. }

其实for循环语句完全可以这样写,下面的代码和上面的效果是一样的(虽然没有必要,但从这样的代码可清楚看出for循环如何工作的)

  1. var i=0;//循环进行之前初始化i
  2. for(;;) {//for语句括号中必须有三个语句,但可以为空语句
  3. if (i<10) {//当条件为true时才执行代码
  4. alert("i当前的值为"+i);
  5. } else {//当条件为false时就退出循环
  6. break;//使用break退出循环
  7. }
  8. }

一个死循环最能说明while的工作方式了(但这样的错误我们绝不能在实际编程中出现)

  1. while (true) {
  2. alert("你关不掉我的!");//这就是网上那些所谓的高手写的“关不上的窗(周传雄新歌,力荐)”代码
  3. }

do..while循环与while循环不同之处在于它至少将代码块中的代码执行一次

  1. do {
  2. alert("我肯定会出现一次的");
  3. } while (false);

而对于for ... in循环,我们将在讲解数组和对象时使用

javascript中的分支判断与循环的更多相关文章

  1. 3. Python中的分支判断、循环

    本文利用的是Python 3.x版本,建议学习3.x版本 Python中的分支判断.循环 1. 分支条件判断 1.1 比较操作 以下是数之间常见的比较操作,例如5>3就是数学意义上的比较,5是大 ...

  2. JavaScript中条件分支语句和循环语句的使用,用简洁的代码实现强大功能

    if()  else if()   else() alert() 弹出警告框 prompt() 输入框,确定:返回输入信息:取消:返回null <!DOCTYPE html> <ht ...

  3. JavaScript中的分支结构

    说到JavaScript中的分支结构,我们就不得不提到流程控制这个词,我们所有的程序都是由数据和算法组成的.程序=数据+算法通常我们所说的算法都可以通过"顺序","分支& ...

  4. JavaScript中instanceof的判断依据

    读jquery源码的时候,发现作者为了让创建jquery对象更容易使用了用函数返回对象的方法 jQuery = function( selector, context ) { return new j ...

  5. 深入剖析JavaScript中的数据类型判断(typeof instanceof prototype.constructor)

    关于JavaScript中的类型判断,我想大部分JavaScripter 都很清楚 typeof 和  instanceof,却很少有人知道 constructor,以及constructor与前面二 ...

  6. SSE图像算法优化系列十六:经典USM锐化中的分支判断语句SSE实现的几种方法尝试。

    分支判断的语句一般来说是不太适合进行SSE优化的,因为他会破坏代码的并行性,但是也不是所有的都是这样的,在合适的场景中运用SSE还是能对分支预测进行一定的优化的,我们这里以某一个算法的部分代码为例进行 ...

  7. 【转】JavaScript 中值得注意的 for 循环

    在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: 简单for循环 for-in forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循 ...

  8. javascript中常见的几种循环遍历

    项目开发中,不管是建立在哪个框架基础上,对数据的处理都是必须的,而处理数据离不开各种遍历循环.javascript中循环遍历有很多种方式,记录下几种常见的js循环遍历. 一.for循环 for循环应该 ...

  9. 在JavaScript中,如何判断数组是数组?

    如果你没有注意过这个问题,那么这个标题应该会让你感到困惑,判断数据类型这么基础的问题能有什么坑呢? 少年,你不能太天真了,我们朝夕面对的这门语言,可是JavaScript呀,任何你觉得已经习以为常的东 ...

随机推荐

  1. python语法(三)— 循环

    上一篇,学习了python的判断语句,了解了python中如何直线分支语句,本文来学习循环语句.python中有两种循环while循环和for循环,当我们不知道循环次数时使用while循环,让我们知道 ...

  2. Xtreme8.0 - Kabloom 动态规划

    Xtreme8.0 - Kabloom 题目连接: https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/kablo ...

  3. Java调用OCR进行图片识别

    使用Java语言,通过Tesseract-OCR对图片进行识别. 1.Tesseract-OCR 下载windows版本并安装. 2.程序如下: a.ImageIOHelper类 package OC ...

  4. SPOJ PGCD 4491. Primes in GCD Table && BZOJ 2820 YY的GCD (莫比乌斯反演)

    4491. Primes in GCD Table Problem code: PGCD Johnny has created a table which encodes the results of ...

  5. Java IO:同步、非堵塞式IO(NIO)

    转载请注明出处:jiq•钦's technical Blog 引言 JDK1.4中引入了NIO,即New IO,目的在于提高IO速度.特别注意JavaNIO不全然是非堵塞式IO(No-Blocking ...

  6. dotNetSpider 手记

    准备工作: 从github上download工程. 安装VS2017. 安装 .net core 2.0. 编译通过. 基础架构: 调度器 Scheduler 从根site开始,向 Downloade ...

  7. [置顶] android socket 聊天实现与调试

    网上很多基于Socket的聊天实现都是不完整的... 结合自己的经验给大家分享一下,完整代码可以在GitHub里获取https://github.com/zz7zz7zz/android-socket ...

  8. Delphi 文件遍历

    unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  9. java中Double类数字太大时页面正常显示而不要用科学计数法

    /** * 当浮点型数据位数超过10位之后,数据变成科学计数法显示.用此方法可以使其正常显示. * @param value * @return Sting */ public static Stri ...

  10. SharePoint Online 切换经典视图

    SharePoint online 默认是现代视图,我们可以通过Powershell命令切换默认视图. 以下,是完成的Powershell命令: # This file uses CSOM. Repl ...