【从无到有】JavaScript新手教程——2.分支结构和循环
介绍完JS的简介和向量以及运算符,大家对JS也有了初步的了解和认识,今天带大家来看一下JS中常用的分支结构以及循环结构是怎么使用的
【JS中的分支结构】
一、【if-else结构】
1、结构写法:
if(判断条件){
//条件为true时执行
}else{
//条件为false时执行
}
2、if()中的表达式,运算之后的结果应为:
①Boolean: true 真 false 假
②String: 非空字符串为真,空字符串为假
③Number:0为假,非0均为真
④Null/NaN/Undefined: 全为假
⑤object:全为真
3、else结构可以根据具体情况省略
二、【多重if结构(阶梯if)】
1、结构写法:
if(条件1){
//条件1成立
}else if(条件2){
//条件1不成立&&条件2成立
//else if 部分可以又N多个
}else{
//条件1不成立&&条件2不成立
}
2、多重if结构中,各个判断条件是互斥的!只能选择其中一条路。
3、if/else的{}可以省略,一般不提倡。
如果省略{} 则if/else结构包含的代码仅为其后最近的一行(分号结束);
如果省略{} 则else结构永远属于其前方最近一个if结构。
三、【嵌套if结构】
1、结构写法:
if (条件1){
//条件1成立
if (条件2){
//条件1成立 条件2成立
}else{
//条件1成立 条件2不成立
}
}else{
//条件1不成立
}
2、if结构可以多重嵌套,但是原则上不超过三层
四、【switch-case结构】
1、结构写法:
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
……
default:
语句N;
break;
}
2、注意事项:
①switch()中的表达式,以及每个case后面的表达式,可以为任何JS支持的数据类型;(对象和数组不行)
②case后面的所有常量表达式,必须各不相同,否则只会执行第一个;
③case后的表达常量可以是任何数据类型,同一个switch结构的不同case可以是多种不同的数据类型;
④switch结构在进行判断的时候,采用的是全等判断===;
⑤break的作用:执行完case代码后跳出当前switch结构;
>>>缺少break的后果:从正确的case项开始,依次执行所有的case和default 原因:⑥
⑥switch结构在判断时,只会判断一次正确答案,当遇到正确的case项后,将会不再判断后续项目,依次往下执行。
⑦switch结构的执行速率要快于多重if结构。在多路分支时,可优先考虑switch结构。
举个例子:
var num4 = prompt(parseInt("输入一个数"));
switch (num4+5){
case 9:
document.write("这是9的case块")
break;
case 10:
document.write("这是10的case块")
break;
default:
document.write("这是default的case块")
break;
}
输入一个数字,如果输入的是4,则在屏幕上打印出"这是9的case块"
如果输入的是5,则在屏幕上打印出"这是10的case块"
如果是其他的数字,则在屏幕上打印出"这是default的case块"
【JS中的循环结构】
一、【循环结构的步骤】
①声明循环变量
②判断循环条件
③执行循环体(while{}中所有代码)操作
④更新循环变量
然后循环执行② ③ ④
二、【JS中循环条件支持的数据类型】:所有数据类型(同if)
①Boolean: true 真 false 假
②String: 非空字符串为真,空字符串为假
③Number:0为假,非0均为真
④Null/NaN/Undefined: 全为假
⑤object:全为真
三、【while循环】
var n = 1; //声明循环变量
while (n<=5){ //判断循环条件
document.write("helloworlds<br />"); //执行循环体(while{}中所有代码)操作
n++; //更新循环变量
}
特点:先判断,再执行;
*【do-while循环】
do{
语句
}while();
特点:先执行,再判断;即便初始条件不成立,do-while循环也至少执行一次
四、【for循环】
for(var n=1,j=5;n<=5;n++,j--){
document.write("helloFor<br />")
}
1、for循环三个表达式,分别为:①定义循环变量 ②判断循环条件 ③更新循环变量
三个表达式之间,用;分隔;
for循环三个表达式均可以省略,但两个”;“缺一不可
2、for循环特点:先判断,再执行;
3、for循环三个表达式均可以有多部分组成,之间用逗号分隔;但是第二部分判断条件需要用&&连接,最终结果需要为真/假
五、【循环控制语句】
1、break:终止本层循环,继续执行循环后面的语句;
>>>当循环有多层时,break只会跳过一层循环。
2、continue:跳过本次循环,继续执行下一次循环;
>>>对于for循环,continue执行后,继续执行循环变量更新语句n++
>>>对于while、do-while,continue执行后,继续执行循环条件判断;所以使用这两个循环时,必须注意continue一定要在n++之后使用。
for(var n=1;n<=20;n++){
if(n%3==0){
//break;
continue;
}
document.write(n+"/");
}
如果是break,则输出的结果是

如果是continue,则输出的结果是

六、【循环嵌套】
外层循环转一次,内层循环转一圈
for(var a=1;a<=5;a++){
for(var b=1;b<=5;b++){
document.write("*");
}
document.write("<br />");
}
效果图:

好啦 ,今天就到这里,希望对你有些帮助。
【从无到有】JavaScript新手教程——2.分支结构和循环的更多相关文章
- Javascript开发技巧(JS中的变量、运算符、分支结构、循环结构)
一.Js简介和入门 继续跟进JS开发的相关教程. <!-- [使用JS的三种方式] 1.HTML标签中内嵌JS(不提倡使用): 示例:<button onclick="javas ...
- JS基础-----JS中的分支结构及循环结构
[分支结构] 一.if-else结构 1.结构的写法:if(判断条件){ //条件为true时,执行if的{} }else{ //条件为false时,执行else的{} } 2.注意事项 ①else语 ...
- JS分支结构与循环结构
1.分支结构 ①if语句 语法结构 if (/* 条件表达式 */) { // 执行语句 } if (/* 条件表达式 */){ // 成立执行语句 } else { // 否则执行语句 } ...
- java第三课:分支结构、循环结构
分支结构 1.if后面可以不加{},但是不建议,容易产生误解2.写程序的时候先防屌丝测试,再写逻辑,否则会出错3.if:一条分支 if else:两条分支 if...else if...:多条分支(结 ...
- C#学习笔记11:C#中的顺序结构、分支结构、循环结构
顺序结构: 代码从Main()函数开始运行,从上到下,一行一行的执行,不漏掉代码. Int a=6; int b=5; int c=a+b; Console.Write(c); 分支结构: 代码有可能 ...
- 4.sass的分支结构、循环结构、函数
分支结构 在sass里,可以使用@if让我们根据一些条件来应用特定的样式 结构: @if 条件 { } 如果条件为真的话,括号里的代码就会释放出来 例如: $use-refixes:true; .ro ...
- day4(分支结构,循环结构,for循环,九九乘法表)
一:复习 ''' 1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开头__结尾的变量, ...
- python4 分支结构,循环结构 for循环
## 复习 ```python'''1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开 ...
- Python中的分支结构和循环结构
一.分支结构 语法: if 条件 : .... else : .... 例子: num = int(input("输入一个整数:")) if num<=10 ...
随机推荐
- switch 在什么时候可以不写default
var point = (2,17) switch point { //case (var x,17): // print("x = \(x)") case (var x,v ...
- ubuntu桌面不显示菜单
为什么?我也不知道,只记得之前在搜狐看了行尸走肉,然后第二次开机就看不到菜单了. 参照百度结果然后去尝试了一下,记过ok了,我的ubuntu是13.10. 图说: 看到这里就应该大概怎么做了. 1 ...
- String及其常用API
String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串.因 ...
- js模块化加载器实现
背景 自es6以前,JavaScript是天生模块化缺失的,即缺少类似后端语言的class, 作用域也只以函数作为区分.这与早期js的语言定位有关, 作为一个只需要在网页中嵌入几十上百行代码来实现一些 ...
- JavaScript高级程序设计(学习)
文档模式是:混杂模式和标准模式. 若在文档开始处没有文档类型声明,则浏览器就会开启混杂模式.这种模式在不同的浏览器下行为差异非常大,如果不使用某些hack技术,跨浏览器的行为根本就没有一致性可言. 局 ...
- 任何一款IDE的设计思路
我们以Windows操作系统为例.现在,基于操作系统的任何计算机语言,我们说都是高级语言,从C开始.无论是哪一种,都是通过操作系统的API与计算机交互.即便.Net的FrameWork库从一定意义上何 ...
- Redis构建分布式锁
1.前言 为什么要构建锁呢?因为构建合适的锁可以在高并发下能够保持数据的一致性,即客户端在执行连贯的命令时上锁的数据不会被别的客户端的更改而发生错误.同时还能够保证命令执行的成功率. 看到这里你不禁要 ...
- jQuery插件之validation插件
前面的话 最常使用javascript的场合就是表单的验证,而jQuery作为一个优秀的javascript库,也提供了一个优秀的表单验证插件——Validation.Validation是历史最悠久 ...
- jmeter配置、安装
一. 工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用,后来又扩充了其它的功能.j ...
- unity插件开发——一个例子:简单的svn集成
在unity开发过程中,通常我们习惯性地在Windows操作系统下使用svn进行版本管理,而每次提交更新,都需要回到文件夹下的这种操作让人无法忍受.是不是可以集成svn到unity中呢?查了一圈uni ...