js中的分支与循环
一、js的分支结构
js的分支结构包括:if-else结构、多重if结构、嵌套if结构和switch-case结构
1、if-else结构
1、结构的写法:
if(判断条件){
//条件为ture时,执行if的{}
}else{
//条件为false时,执行else的{}
}
2、注意事项:
①else{}语句块。可以根据情况进行省略。
②if和else后面的{}可以省略,但是省略{}后,if和else后面只能跟一条语句;(所以,并不建议省略{})
3、if的()中的判断条件,支持的情况:
①Boolean:ture为真,false为假;
②String:空字符串为假,所有非空字符串为真;
③Number:0为假,一切非0数字为真;
④Null/undefined/NaN:全为假;
⑤Object:全为真;
示例:要求:如过三件商品的总价大于100元或折其中一件商品的价格大于50元,则打8.5折。
var num1 = parseFloat(prompt("请输入第一种商品的价格:"));
var num2 = parseFloat(prompt("请输入第二种商品的价格:"));
var num3 = parseFloat(prompt("请输入第三种商品的价格:"));
if(num1>50||num2>50||num3 > 50||(num1+num2+num3)>100){
var mon = (num1+num2+num3)*0.85;
alert("总价为:"+mon);
}else{
var mon = (num1+num2+num3);
alert("总价为:"+mon);
}
2、多重if结构
1、结构写法:
if(条件一){
//条件一成立,执行的操作
}else if(条件二){
//条件一不成立&&条件二成立,执行的操作
}else{
//上述条件都不成立执行的操作
}
2、多重if结构中,各个判断条件是互斥的,执行选择其中一条路执行。遇到正确选项并执行完以后,直接跳出结构,不再判断后续分支;
示例:根据成绩计算成绩等级
var m = prompt("请输入成绩:");
if(m >=90){
alert("优");
}else if(m >=80&&m <90){
alert("良");
}else if(m>=60&&m<80){
alert("中");
}else{
alert("差");
}
3、嵌套if结构
1、结构写法:
if(条件一){
//条件一成立
if(条件二){
//条件一成立&&条件二成立
}else {
//条件一成立&&条件二不成立
}
}else{
//条件一不成立
}
2、在嵌套if结构中,如果省略{},则else结构永远属于离他最近的一个if结构。
3、嵌套结构可以多层嵌套,但是一般不超过3层。能用多层if结构的一般不推荐使用嵌套if。
示例:输入三个数并求出三个数的最大值
<script type="text/javascript">
var a= prompt("请输入第一个数:");
var b= prompt("请输入第二个数:");
var c= prompt("请输入第三个数:"); if(a>b){
if(a>c){
alert("最大值为:"+a);
}else {
alert("最大值为:"+c);
}
}else {
if(b>c){
alert("最大值为:"+b)
}else {
alert("最大值为:"+c)
}
} </script>
4、switch-case结构
1、结构写法:
switch(表达式){
case 值1 : 语句1 break;
case 值2 : 语句2 break;
...
default : 语句n break;
}
2、注意事项:
①switch结构()中的表达式可以使用各种js支持的数据类型;
②switch结构在进行判断的时候,使用===(全等)判断;
③case后面的表达式可以是各种数据类型,但是值要求各不相同,否则也只会执行第一个case;
④break作用:执行完case后,跳出当前switch结构;
缺少break后果:从第一个正确的case项开始,执行后面的所有case和default;
原因:↓
⑤switch结构在进行判断的时候,只会判断一次正确答案。当遇到正确的case后,将不会在判断后续的项目。
⑥switch结构的执行效率要比多重if快。在多路分支结构中,优先推荐使用switch。
示例:
var num=5;
switch (num-4){
case 1:
document.write("第一个case");
break;
case 2:
document.write("第二个case");
break;
case 3:
document.write("第三个case");
break;
default:
document.write("case都不成立,执行default");
break;
}
二、循环结构
常用的循环结构有:while循环、do-while循环,for循环和循环的嵌套;
其中,循环结构的步骤:1、声明循环变量; 2、判断循环条件3、执行循环体操作;4、更新循环变量;
然后循环执行2-4,知道条件不成立时,跳出循环。
1、while循环:
1、结构:
var num=1; //1、声明循环变量
while(num <10){ //2、判断循环条件
document.write(num+"<br>"); //3、执行循环体操作;
num++;
}
2、注意事项:
①while循环中的表达式可以是各种类型。但是最终都会转为真假,转换规则同if相同:
②while循环的特点:先判断再执行;
示例:输入一个数字,计算1到这个数字所有数字的和;
var num = parseInt(prompt("请输入一个数字"));
var i = 1 ;
var sum=0;
while (i<=num){
sum+=i;
i++;
}
2、do-while循环
1、结构:
do{
语句
}while(判断条件);
2、注意事项:
do-whlie循环的特点:先执行,再判断;即使初始条件不成立,do-while循环也至少执行一次。
示例:猜数游戏。要求猜一个介于1~10之间的数字,根据用户猜测的数与标准值进行对比,并给出提示,以便下次猜测能接近标准值,直到猜中为止。
var a = 7;
do{
var b = prompt("请输入一个数:");
if(b>7) {
alert("数字太大了~");
}else if(b<) {
alert("数字太小了~");
}else {
alert("你真聪明!猜对了!")
}
}while(b!=a);
3、for循环
1、结构
for(var i=1;i<10;i++){
语句;
}
2、for循环有三个表达式:
申明循环变量
判断循环条件
更新循环变量
三个表达式之间用分号分隔,三个表达式可以省略,但是两个分号缺一不可。
3、for循环执行特点:先判断,再执行,与while相同。
4、 for循环三个表达式都可以有多部分组成;第二部分多个判断条件用&& ||链接,第一三部分用逗号分隔;
示例:计算1到100之间所有数字的和:
<script type="text/javascript">
var sum=0;
for(var a=1,b=100;a<=50&&b>=51;a++,b--){
if(b==51) {
document.write("("+a+"+")
document.write(b+")=");
}else {
document.write("("+a+"+") document.write(b+")+");
}
var sum = sum+parseInt(a+b);
}
document.write(sum);
</script>
4、循环嵌套:
1、循环嵌套的规律
外层循环控制行数,内层循环控制每行中元素的个数。
示例:打印九九乘法表:
<script type="text/javascript">
var sum=0;
for (var i = 1;i<=9;i++) { document.write("<table border=2;>")
var rowSum=1;
document.write("</tr>")
for(var j=1;j<=i;j++){ sum = i*j;
document.write("<td >"+i+"*"+j+"="+sum+"</td>");
}
document.write("</tr>") document.write("</table>")
} </script>
4、循环控制语句
1、break:跳出本层循环,继续执行循环后面的语句。
如果循环有多层嵌套,则break只能跳出一层;
2、continue:跳过本层循环剩余的代码,继续执行下一次循环。
①对于for循环,continue之后执行的代码,是循环变量更新语句,i++;
② 对于while、do-while循环,continue之后执行的语句,是循环条件判断;
因此,使用这两个循环时,必须将continue放到i++之后使用。否则continue跳过i++导致死循环。
js中的分支与循环的更多相关文章
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- JS中的运算符和JS中的分支结构
JS中的运算符 1.算术运算(单目运算符) + .-.*. /. %取余.++自增 .--自减 +:两种作用,链接字符串/加法运算.当+两边全为数字时,进行加法运算:当+两边有任意一边为字符串时,起链 ...
- 一文搞懂 js 中的各种 for 循环的不同之处
一文搞懂 js 中的各种 for 循环的不同之处 See the Pen for...in vs for...of by xgqfrms (@xgqfrms) on CodePen. for &quo ...
- js中奇特的for循环写法
//正常的for循环 for(var i=0;i<10;i++){ console.log(i); } //输出:1,2,3……10 //简写 for(var i=10;i--;){ conso ...
- JS中的分支结构
if语句 语法: if (expression1) { } else if (expression2) { } else { } 执行机制: 先对expression1做判定,如果为真,执行对应的代码 ...
- JS基础-----JS中的分支结构及循环结构
[分支结构] 一.if-else结构 1.结构的写法:if(判断条件){ //条件为true时,执行if的{} }else{ //条件为false时,执行else的{} } 2.注意事项 ①else语 ...
- JS中有关分支结构、循环结构以及函数应用的一些简单练习
案例一:搬桌子 年龄大于七岁男女都可以搬桌子,年龄小于七岁大于五岁的男生可以搬桌子: var num =parseInt(prompt("请输入你的年龄")) var sex ...
- oracle中的分支与循环语句
分支语句 if的三种写法一, if 2 < 1 then dbms_output.put_line('条件成立'); end if; 二, if 2 < 1 then dbms_outpu ...
- js中数组以及for循环的使用
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...
随机推荐
- visual Studio 2017 扩展开发(一)《向Visual Studio菜单栏新增一个菜单》
最近有接触到关于visual studio 2017 扩展的开发,特此记录,也是为了督促自己去深入了解其原理. 开始开发Visual Studio 扩展,在这里我安装了visual studio 20 ...
- kali ssh服务连接问题,无法远程管理
1.修改sshd_config文件,命令为:vi /etc/ssh/sshd_config 2.将#PasswordAuthentication no的注释去掉,并且将NO修改为YES 3.将#Per ...
- Python判断文件是否存在的三种方法
通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...
- linux服务器部署jar包以及shell脚本的书写
背景:记录在linux环境下部署jar程序的过程 1 部署过程记录 1.1 程序结构 这里的main函数就在DemRest2.java 文件中. 为了部署方便,要做到以下两点: 1 在导出的jar包中 ...
- iOS开发实战-上架AppStore 通过内购和广告获得收益
写在前面 由于一些原因需要离职,准备重回大上海 忽然发现手头上也没什么独立App,那就随便写个放到AppStore上吧,凑个数吧.哈哈哈. 这个App是无聊找配色的时候看到的一套图 正好春节在家没什么 ...
- PPK提供的浏览器类型及版本检测方法
PPK提供的浏览器类型及版本检测方法 一个常用但是被高估的Javascript函数就是浏览器检测.有些时候,你想给出一个说明或者加载一个页面来提示用户,以免使用Safari等浏览器. 使用方法: ...
- 获取本机IP(适用于Linux系统)
获取本机IP(适用于Linux系统) /** * @desc 获取本机IP(适用于Linux系统) * @return Ip */ public static String getLocalIP() ...
- 在自学java路上遇上的南墙
从2016年12月20号自学java,先是咨询了下培训中心,得小两万,四个月毕业,算了一笔账,一百二十天,合下来每天三百多块,再加上开销之类压力太大,于是开始入坑自学,随后血一般的教训直面而来: 1. ...
- Zabbix监控IO
导入模板 configuration->templates->import,选择你需要导入的模板文件 #zabbix_agentd配置 # iostat #磁盘读的次数 UserParam ...
- akoj-1267-独木舟上的荡漾
独木舟上的荡漾 Time Limit:1000MS Memory Limit:65536K Total Submit:76 Accepted:44 Description 进行一次独木舟的旅行活动, ...