javascript三大流程控制语句

(1)顺序控制

(2)分支控制

让程序有选择的执行,分支控制有三种
①单分支②双分支③多分支

①单分支
if(条件表达式){
语句;
}
②双分支
if(条件表达式){
语句;
}else{
语句;
}


③多分支
if(条件表达式1){
//执行
}else if(条件表达式2){
//执行
}else if…{ 

//可以有多个else if
}
else{ 

//可以没有
}


举例:
如果男,男厕所,女,女厕所,否则不上

var sex=window.prompt("请输入性别");
if(sex=="男"){
window.alert("上男厕所");
}else if(sex=="女"){
window.alert("上女厕所");
}else{
window.alert("不上厕所");
}

注意:多分支,找到一个入口后,后面的都不判断了。
强调:一旦找到一个满足条件的入口,执行完毕后,就直接结束整个多分支。

③多分支 switch
switch(条件表达式){
case 常量1:
语句; break;
case 常量2:
语句; break;

case 常量n:
语句; break;
default:
语句;
}
注意:case有几个都行,default可以没有。当case1~n都不满足的时候,则default。default并不一定要在最后。
switch的细节问题

<html>
	<head>
		<script language="javascript">
			var a=890;
			switch(a){
				case 890:
					window.alert("这是890");
					break; //break 作用是跳出整个swithc语句
				case 90:
					window.alert("这是90");
					break;
				case 890:
					window.alert("没有匹配的值");
					break;
				}
			//********
			//当break语句没有的时候,会接着向下执行,直到碰到第二个break,也不会去判断90了(后面不需要判断,直接进入),从入口890进来了已经。
			var a=890;
			switch(a){
				case 890:
					window.alert("这又是890"); //输出
					//这里没有break语句了
				case 90:
					window.alert("这是90"); //输出后跳出
					break;
				case 890:
					window.alert("没有匹配的值");
					break;
			}
			window.alert("end…");
			//********
			// 这个会出现什么提示?会弹出三个对话框,因为1没有任何匹配就进入了default,因为没有break,就接着执行window.alert("今天是星期一");因为又没有break,就再执行window.alert("今天是星期二");
			var flag=1;
			switch(flag){
				default:
				window.alert("默认");
				case 'a':
				window.alert("今天是星期一");
				case 'b':
				window.alert("今天是星期二");
			}
			//********
			//下面的这个又会提示什么呢?1.1有匹配了,只显示1.1,然后语句结束。
			var flag=1.1;
			switch(flag){
				default:
				window.alert("默认1.1");
				case 'a':
				window.alert("今天是星期一1.1");
				case 'b':
				window.alert("今天是星期二1.1");
				case 1.1:
				window.alert("1.1");
			}
			//********
			//对上面的程序再深一步,下面的这个又会提示什么呢?1.2有匹配了,先显示1.2,没有遇到break,就继续执行window.alert("今天是星期二1.2");还是没有遇到break,再执行window.alert("默认1.2");程序结束。
			var flag=1.2;
			switch(flag){
				case 'a':
				window.alert("今天是星期一1.2");
				case 1.2:
				window.alert("1.2");
				case 'b':
				window.alert("今天是星期二1.2");
				default:
				window.alert("默认1.2");
			}
		</script>
	</head>
	<body></body>
</html>

表达式可以是js支持的所有数据类型
注意:
a、js的switch语句类型可以是js支持的任何类型(数组和对象除外)
b、case后面的数据类型可以 任意(数组和对象除外)
c、break作用是跳出整个switch语句
d、如果没有匹配的则执行default


(3)循环控制

<html>
	<head>
		<script language="javascript">
			for(var i=0; i<10; i++){
				document.writeln("你好,刘德华同志!<br/>");
			}
			document.writeln("=======<br/>");
			// while循环
			var i=0;
			while(i<10){
				document.writeln("你好,我是刘德华 <br/>");
				i++;
			}
			// do while循环
			document.writeln("=======<br/>");
			var i=0;
			do{
				document.writeln("你好,我是张学友 <br/>");
				i++;
			}while(i<10);
		</script>
	</head>
	<body></body>
</html>


循环控制有三种
①for循环

for(循环初值;循环条件;步长){
语句; //循环体
}
②while循环
while(循环条件){
语句; //循环体

}

特别说明:while循环是先判断再执行语句。
③do while循环
do{

语句;//循环体
}while(循环条件);
特别说明:do while循环是先执行,再判断。
while和do while区别的通俗讲解:
还钱的问题
while:上来先问你还不还钱,还钱,就不打你(先判断,再执行)
do while:上来先打一顿,打完了再问,还钱吗(先执行,再判断)

案例:
(1)计算1+2+…n的值

<html>
	<head>
		<script language="javascript">
			var n=window.prompt("请输入一个整数");
			n=parseInt(n);

			var res=0;
			for(var i=0;i<=n;i++){
				res+=i;
			}
			document.writeln("结果是"+res);
		</script>
	</head>
	<body></body>
</html>


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值