【JavaScript-04】分支语句和循环语句

八、条件语句

1.if

主要用于判断从上到下执行,如果有一项判断成功后面的将再执行

<script>
		// if 语句 主要用作判断
		// 语法:
		// 	if(表达式){
		// 		表达式结果为true,执行的语句;
		// 	}
		// if(10>20){
		// 	console.log('if 表达式值为true执行的语句');
		// }else{
		// 	console.log('if 表达式为false行的语句')
		// }



		// 当有if else if else的时候,if条件为真,执行if。else if条件为真,执行else if,但前提是他上面的if 条件为假,即false。当条件都不满足的时候执行else里面的代码
		/*var a = 30;
		var b = 10;
		if(a>b){
			console.log('if进来了');
		}else if(a>b){
			console.log('else if进来了');
		}else{
			console.log('else 进来了');
		}*/

		/*// 小练习,判断用户输入的数是奇数还是偶数
		var num = Number(prompt('请输入一个数'));
		//需要转化为数字类型
		if(num%2==1){
			console.log('您输入的数是奇数');
		}
		else if(num%2==0){
			console.log('您输入的数是偶数');
		}
		else{
			console.log('您输入数不符合规范,请重新输入');
		};
		//NaN不能直接判断,需要使用isNaN(num)判断*/

		var a = '0';
		//重复声明不会报错,但是下面的内容会覆盖上面的内容
		var a = null;//false 未产生结果
		var a = undefined;//false 未产生结果
		var a = 1;//true
		var a = 0;//false
		var a = '';//false
		// 字符串有值就是true,无值就是false                       
		if(a){
			alert("正确");
		}

	</script>
2.switch
<script>
		/*switch的语法
		switch(表达式){
			case 值: 复合条件要执行的代码
				break;跳出循环
			case 值:
				复合条件要执行的代码
				break;跳出循环
			default://类似于if条件语句中else的值
				代码
				break;
		}
		case 的值必须是常量
		常量就是不能修改的值*/
		/*var a = prompt("请输入英文字母:")
		switch(a){
			case "A":
				console.log("输出我是A");
				break;//什么时候碰到break什么时候停止执行
			case "B":
				console.log("输出我是B");
				break;
			case "C":
				console.log("输出我是C");
				break;
			default :
				console.log("没找到");
				break;
		}*/
		//当条件符合时执行case里面的代码,如果不写brake,就会往下执行代码,直到遇到brake为止。
		//小练习,用户输入月份,控制台打印这个月有多少天
		var month =Number( prompt('请输入您想知道的月份'));
		switch(month){
			case 1,3,5,7,8,10,12:
				console.log('这个月有31天');
				break;
			case 2:
				console.log('这个月有28天');
				break;
			case 4,6,9,11: 
				console.log('这个月有30天');
				break;
			default:
			 	console.log('您输入的内容有误,请重新输入!');
			 	break;
		}
		//老师版
		var month = prompt('请输入月份');
		switch(month){
			case '1':
			case '3':
			case '5':
			case '7':
			case '8':
			case '10':
			case '12':
				console.log('31days');
				break;
		}

		总结:当分支较多时,使用Switch效率较高,因为switch是随机访问的,当确定了表达式的结果,会直接跳到符合的分支上
		switch 为什么会使用的比较少?是因为switch只能处理常量,也就是值不能改变
	</script>
3.continue和break语句

只要遇见continue就退出本次循环,直接跳到i++

break:在循环中使用,则立即跳出该次循环,然后执行下次循环

九、循环语句

1.while
<script>
		/*while循环
		什么是循环 反复执行
		但是循环不能无限执行(无限执行下去的是死循环)
		while 语法规则:
			var 变量=表达式;
			while(循环条件){
				循环体(也就是循环执行的代码)
				计数器 变量++;
			}*/
		/*var i = 1;
		while(i<=10){
			console.log("打印出来的循环是:"+i);
			i++;
			//第一遍 i=0 0<10 条件满足 执行代码
			//重复以上代码第十一遍
			//11<10不成立 跳出循环
		}*/
		/*//小练习 求1-100所有是3的倍数的数
		 var i = 0;
		 while(i<=100){
		 	//while 里面不能写两个条件值
		 	if(i%3 == 0){
		 		console.log(i);
		 	}		 	
		 	i++;
		 }*/

		
	</script>
2.do while
<script>
/* do while语法:
		  do{
		  	循环体
		  	计数器
		  }while(循环条件)

		  while和do while区别
		  do while 无论条件真假都会执行一次,也就是最少执行一次
		  而while循环 是先判断条件所以条件不满足是,一次也不会执行*/
		  var i = 11;
		  do{
		  	console.log('这是do while打印的值');
		  	i++;
		  }while(i < 10)
</script>
3.for循环
<script>
		/*for循环语法:
			for(表达式1;表达式2;表达式3){
				循环体
			}*/
			/*for(var i=0;i<10;i++){
				console.log('for循环打印的值',i);
			}
				//0~9一共十次
				//for的表达式1,只执行1次
				//表达式1>表达式2>循环体>表达式3>表达式2>条件符合到循环体||条件不符合结束 循环*/
			//小练习 求1-100数字的和
			var sum = 0;
			for(var i=0;i<=100;i++){
				sum = sum+i;
			}
			console.log('1-100的和是:',sum);
    /*// 求输出用户,输入行和列 的数字,我们输入相应的*,如用户输入 2行3列,我们输出***
			// 			***
			
			// 转义字符 \n
			var str ='';
			var num1 = parseInt(prompt('请输入行的个数'));
			var num2 = parseInt(prompt('请输入列的个数'));
			for(var i=0;i<num1;i++){
				for(var j=0;j<num2;j++){
					// console.log('*'+'\n');
					str += '*';
				}
				// console.log('\n');
				str += '\n';
			}
			console.log(str);*/
			
	</script>

for的冒泡排序

​ // 冒泡排序:是一种简单的排序算法,一次比较两个,不符合要求就交换,经过多次循环,符合要求的就会慢慢上浮
​ // 1.比较相邻的两个元素,如果前一个比后一个大,则交换位置
​ // 2.比较完一轮以后,我们能确定最后一个元素是它们当中最大(或最小)的元素
​ // 3.这时候最后一个元素因为已经是最大的了,所以第二回合就不再参与比较了

<script>
		
		
		var arr = [1,3,6,5,4,2];
		for(var i = 0;i < arr.length-1;i++){//外层for循环代表回合数,5个数有4回合,6个数有5回合
				for(var j = 0;j<arr.length-i-1;j++){//交换的次数,总的长度-回合数-1
					//比较相邻的两个元素
					if(arr[j] > arr[j+1]){
						//当左边大于右边
						var temp = arr[j];//把左边的数据给中间人先存着
						arr[j]=arr[j+1];
						arr[j+1] = temp;//将刚才存在中间人里的值拿出来
					}

				}
		}
		console.log(arr);



		//将冒泡排序封装成函数,要循环的的数组由参数提供,并打印出冒泡排序后的数组
		function getSort(arr){
		for(var i = 0;i < arr.length-1;i++){
			for(var j = 0;j<arr.length-i-1;j++){
				if(arr[j] > arr[j+1]){
					var temp = arr[j];
					arr[j]=arr[j+1];
					arr[j+1] = temp;
					}
				}
		}
		return arr;
		}
		//函数的调用
		var arr1 = getSort([12,5,8,6,4,7]);
		console.log('冒泡排序的函数算法结果为',arr1);
	</script>
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值