文档章节

JavaScript零基础入门——(五)JavaScript的程序流程控制

JandenMa
 JandenMa
发布于 06/14 01:01
字数 1099
阅读 19
收藏 0
点赞 0
评论 0

JavaScript零基础入门——(五)JavaScript的程序流程控制

欢迎回到JavaScript零基础入门,上一节课我们认识了JavaScript的运算符,这一节课,我们来讲一讲,JavaScript的程序流程控制。

程序流程控制,是指通过某些指令来执行或改变程序的执行顺序。在JS中,有着大部分语言都有的三大流程控制,他们分别是顺序流程控制、分支流程控制和循环流程控制。我们一个个来认识。

关于顺序流程控制,顾名思义,就是让程序自上而下的按顺序执行,我们之前写的例子代码,都是顺序执行的,这里就不赘述了。

在说分支流程控制和循环流程控制之前,我想先讲讲布尔值。第四节课的时候我们讲过,布尔值是用来作为判断的,它的值非真即假,但是呢,真和假并不仅仅是true或者false,上一节课我们讲的运算符,可以组合得到表达式结果,这个结果是可以直接拿来做判断的。一般来说,结果为true/非零数字/非空字符串都属于true,反之false/0/空字符串都属于false。

继续回到我们的课程,分支流程控制,有些也叫做判断流程控制,就意味着程序到这个地方可能就要接受判断然后分开走了,就跟在岔路口一样。但岔路可能是Y字路口,也有可能是三岔路口或者十字路口。分支流程控制分为单分支、双分支和多分支,我们分别来说说。

单分支流程控制,其实就是我们常说的单条件判断,即if判断,直接看代码:

//判断是不是偶数
function isEven(num){
    if(num%2 == 0)){
        return true;
    }
    return false;
}

所谓双分支流程控制,其实就是如果..否则..,写成代码就是if..else..,其实也可以简写成三目运算符?:。具体的来看代码:

//if..else..
function max(n1, n2){
    if(n1 >= n2){
        return n1;
    } else {
        return n2;
    }
}

//三目运算符?:
function max2(n1, n2){
    return n1 >= n2 ? n1 : n2;
}

而多分支流程控制,则也有两种表现形式,一种是if..else if..else,一种则是swich..case..,我们来看一下代码:

//比较大小
function compare(n1, n2){
    if(n1 == n2){//如果n1等于n2
        return 0;
    } else if(n1 > n2) {//否则如果n1大于n2
        return 1;
    } else {//否则就是n1小于n2
        return -1;
    }
}

function showWeek(day){
    switch(day){//这里是一个表达式
        case "Sunday":
            console.log('星期日');
            break;
        case "Monday":
            console.log('星期一');
            break;
        case "Tuesday":
            console.log('星期二');
            break;
        case "Wednesday":
            console.log('星期三');
            break;
        case "Thursday":
            console.log('星期四');
            break;
        case "Friday":
            console.log('星期五');
            break;
        case "Saturday":
            console.log('星期六');
            break;
    }
}

介绍完分支流程控制,我们来说说循环流程控制。所谓循环流程控制,无非就是程序运行到这里,可能就会反复执行指定的动作知道满足离开这个动作的条件。在JS中,循环流程控制有三种方法,分别是for循环、while循环和do..while循环,其实原理异曲同工,那就是满足循环条件就在循环里面执行,一旦不满足了,就跳出或继续下一个循环。我们直接来看代码:

//求a的1~b次方,当结果大于25才输出,结果大于等于100结束

//for 循环
function times(a,b){
    var result = 1;
    for(var i = 0; i < b; i++){
        result *= a;
        if(result <= 25){
             continue;
        } else if(result >= 100){
            break;
        } else {
            console.log(result);
        }
    }
}

//while 循环
function times(a,b){
    var i = 0;
    var result = 1;
    while(i < b){
        result *= a;
        if(result <= 25){
             continue;
        } else if(result >= 100){
            break;
        } else {
            console.log(result);
        }
        i++;
    }
}

//do..while 循环
function times(a,b){
    var i = 0;
    var result = 1;
    do{
        result *= a;
        if(result <= 25){
             continue;
        } else if(result >= 100){
            break;
        } else {
            console.log(result);
        }
        i++;
    }while(i < b);
}

好,由于时间关系,这节课简单的介绍了JS的程序流程控制,大家要自己多敲一敲,不懂的要及时留言。下一节课,我们来认识一下,JavaScript中,字符串一些常用的处理方法。

                                                                                                       

如果想跟着振丹继续学习,可以微信关注【振丹敲代码】(微信号:JandenCoding)

新博文微信同步推送,还附有讲解视频哦~

也可直接扫描下方二维码关注。

© 著作权归作者所有

共有 人打赏支持
JandenMa
粉丝 1
博文 9
码字总数 9371
作品 0
汕头
JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 06/19 ⋅ 0

前端学习之路(从入门到入坑...)

学习前端两年多了,拿了阿里巴巴实现offer,想结合个人经历总结的前端入门方法,总结从零基础到具备前端基本技能的道路、学习方法、资料。由于能力有限,不能保证面面俱到,只是作为入门参考...

阿小庆 ⋅ 06/14 ⋅ 0

开源书籍-JavaScript 编程精解

《JavaScript 编程精解》(Eloquent JavaScript)第三版,是由马尔奇·哈弗贝克(Marlin Haverbeke)JavaScript程序员编写的JS入门书籍,Marlin Haverbeke通晓多种编程语言,在Web开发方面积累...

marsdream ⋅ 06/04 ⋅ 0

JavaScript中的this指针 理论化this指针的定义

JavaScript现在应用之广泛,远超其他任何语言,只要是一个合格的网站应用,基本上多多少少都会有JS的存在。在JavaScript中,this的指向被不少Coder所不解,但其实JS中的this理解起来也是相当...

superwebmaster ⋅ 05/29 ⋅ 0

JavaScript 和服务器端方向推荐书单(附简评)

我一直以来读书是获取知识最好的方式,很长时间以来,我都在博客维护了一个 推荐书单,最近又做了一些整理,为每本书都添加了简评,希望能对大家有帮助,当然如果能用我的推广链接购书就再好...

eapxuo ⋅ 02/09 ⋅ 0

[译] JavaScript 是如何工作的:对比 WebAssembly + 为什么在某些场景下它比 JavaScript 更合适

原文地址:How JavaScript works: A comparison with WebAssembly + why in certain cases it’s better to use it over JavaScript 原文作者:Alexander Zlatkov 译文出自:掘金翻译计划 本......

stormluke ⋅ 05/23 ⋅ 0

5分钟,掌握9个风骚又简洁的JavaScript技巧

5分钟,掌握9个风骚又简洁的JavaScript技巧 编辑于 2018-05-08

优达学城(Udacity) ⋅ 05/16 ⋅ 0

PHP学习路线图 最全PHP自学指南

对于广大零基础的PHP自学者,往往不知道如何系统的学习PHP,导致平白浪费了很多时间。本文将为大家带来最详细的php学习路线图,同时还会附上相应的权威教程,让广大PHP自学者少走许多弯路。 ...

W3Cschool小编 ⋅ 04/24 ⋅ 0

WebAssembly 时代,Rust 也想成为 Web 语言

目前 Mozilla 正在基于 WebAssembly 可移植代码格式研发 JavaScript 和 Rust 之间的桥梁——wasm-bindgen,意义是提高 JavaScript 和 Rust 之间的互操作性。Mozilla 这么做是想让 Rust 成为类...

开源中国 ⋅ 04/10 ⋅ 0

编程入门先学什么 初学者编程入门指南

  编程入门先学什么?相信这是很多想要自学编程的小伙伴都会有的疑惑,本文将为大家带来初学者编程入门指南。 明确学习编程的目的   对于一个没有任何基础的小白来说,学习编程最重要的是...

W3Cschool小编 ⋅ 04/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 25分钟前 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

vim编辑模式、vim命令模式、vim实践

vim编辑模式 编辑模式用来输入或修改文本内容,编辑模式除了Esc外其他键几乎都是输入 如何进入编辑模式 一般模式输入以下按键,均可进入编辑模式,左下角提示 insert(中文为插入) 字样 i ...

蛋黄Yolks ⋅ 昨天 ⋅ 0

大数据入门基础:SSH介绍

什么是ssh 简单说,SSH是一种网络协议,用于计算机之间的加密登录。 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码...

董黎明 ⋅ 昨天 ⋅ 0

web3j教程

web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 汇智网最新发布的web3j教程,详细讲解...

汇智网教程 ⋅ 昨天 ⋅ 0

谷歌:安全问题机制并不如你想象中安全

腾讯科技讯 5月25日,如今的你或许已经对许多网站所使用的“安全问题机制”习以为常了,但你真的认为包括“你第一个宠物的名字是什么?”这些问题能够保障你的帐户安全吗? 根据谷歌(微博)安...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部