欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS学习笔记——入门基础知识总结(循环语句)

程序员文章站 2022-06-30 19:12:00
...

前言

鉴于本人正在学习前端知识中,以下内容可能会有一定错误,如果能指出错误之处感激不尽,希望能与大家共同进步
所谓循环结构就是周而复始的执行同一段代码,当然循环不能是一直运行的,那样便成了死循环程序将被困在循环中,所以我们所需要的循环结构是一个能听从我们指令,进行有限次运行并能获得我们所需要的数据。要想建立一个这样的循环结构就需要考虑以下几点需求:
1)初始状态(初始化):最开始的循环状态,每次循环开始前都需要恢复到同样的状态,这样才不会被上一轮循环影响到
2)循环判断:判断循环是否继续进行,保证达到我们需求后能退出循环
3)执行代码:所需要循环执行的代码
4)循环值改变:一般循环值就是循环判断中被判断的变量,在每次循环后,这个变量都需要改变。
循环结构与选择结构一样,都是需要进行大量的练习才能熟练掌握,只理解理论知识是没有用的。接下来就详细介绍下循环结构这个大家庭的成员吧。

一、while循环

结构:
while(条件){
执行代码
}

例:
var n=1;【初始条件】
while(n<10【循环判断】){【花括号内都是执行代码】
console,log(n);
n++【循环值改变】
}
当条件满足时,执行代码运行,然后对条件进行再次判断,满足再次运行执行代码,直到条件不满足时退出循环。

二、do while循环

结构:
do{
执行代码
}while(条件)
先运行一次执行代码,然后再对条件进行判断,满足条件时再运行一次,不满足则退出循环。

三、for循环

结构:
for(初始化循环值;判断条件;循环值改变){
执行代码
}

例:
for(【这里var如果省略不写,i就变为全局变量】var i=0;i<10;i++){
console.log(i)
}
当判断条件满足时,执行代码运行一次,循环值改变,然后再进行判断,直到判断条件不满足时退出循环。

四、提前退出循环

有时候我们不需要循环全部都执行,而是满足一定条件便能停止,举个例子:有一个循环结构,每次能输出一个数字,一共能输出100次,这时候有100个随机生成的一位数字,我想在遇到6时候便停止输出,或者只输出偶数,这就要用到两个能停止循环的关键字了

break(终止循环)

break在switch循环中出现过,他的作用便是结束程序运行返回上一层代码,在循环中执行到break将结束本次循环去执行循环之后的代码,适合添加在想终止循环的位置

continue(跳过循环)

当执行到continue时,在continue之后的代码不执行,跳到下一次循环,换而言之就是跳过了本次循环,但没用终止循环,循环将继续进行。适合添加在想跳过循环的位置。

五、练习题

以下练习题均为本人培训过程中老师当天布置的练习题,对理解循环语句有很大的帮助,我会将个人的解题代码放置最后,个人水平有限仅供参考
1.入职薪水10K,每年涨幅5%,50年后工资多少?
2.打印100以内 7的倍数
3.打印100以内的奇数
4. 打印100以内所有偶数的和
5. 打印图形
1) ********** ********** ********** **********
2)* i =0, 1 ** i=1, 2 *** i=2, 3 **** i=3
3)* *** ***** *** *
4)@ @@@ @@@@@ @@@@@@@
5)
JS学习笔记——入门基础知识总结(循环语句)
6. 打印100–200之间所有能被3或者7整除的数
7. 计算100的阶乘 100!
8. 计算1+3+5+…+99的和
9. 99乘法表
10. 求100-999之间的水仙花数。 算法 : abc = a ³ + b³ + c ³
11. 输出20-80之间能被3整除的整数,每5个一行
12. 打印出1000-2000年中所有的闰年,并以每行四个数的形式输出
13 . 求1+2!+3!+…+20!的值
14. 打印出1-100里所有的偶数
15. 打印出1-100里所有的奇数
16. 求出1/1-1/2+1/3-1/4……1/100的和

提升题(选做):
17. 输出100-200之间所有的素数
18. 求s=a+aa+aaa+aaaa+….+aa…a的值,其中a是一个数字。例如2+22+222+2222
19. 操场上 100 多人排队 ,3 人一组多 1 人 ,4 人一组多 2 人 ,5 人一组多 3 人 , 共多少人
20. 两个自然数相除 , 商 3 余 10, 被除数 , 除数 , 商 , 余数的和是 163, 求被除数 , 除数
21. 一只猴子旁边有 100 根香蕉 猴子距离家 50 米 猴子一次顶多搬 50 根香蕉
但猴子每走6米就要吃掉一根香蕉 问猴子最多能拿多少根香蕉回家
22. 假设某人有 100,000 现金。 每经过一次路口需要进行一次交费。 交费规则为当他现金大于50,000 时每次需要交 5%
如果现金小于等于 50,000 时每次交 5,000 。 请写一程序计算此人可以经过多少次这个路口
23. 《张丘建算经》 成书于公元 5 世纪, 作者是北魏人. 书中最后一道题堪称亮点, 通常也被称为 “ 百钱买百鸡 ” 问题,
民间则流传着县令考问神童的佳话书中原文如下:
鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

以下为个人答案(本人是用了JS函数封装解题代码,需要调用函数才能看的结果,如果是还未学到函数的同学可以直接将内部代码拿出来使用,用特定值去测试解题代码是否确定)

// 1 n年后数值,初始j,年涨幅5%
function salary(year){
	var j = 10
	for(i=1;i<year;i++){
		j = 1.05*j
	}
	j = parseInt(j*1000);
	j = j/1000
	console.log(year+"年后工资为:"+j+"K")
}


// 2 num以内7的倍数
function seven(num){
	for(i = 0;i <= 100;i++){
		if( i % 7  == 0){
			console.log(i)
		}else{
		}
	}
}


// 3 num以内奇数
function odd(num){
	for(i = 0; i <= 100; i++){
		if(i % 2 == 1){
			console.log(i)
		}else{
		}
	}
}


// 4 num以内偶数和
function sum(num){
	var j = 0;
	for(i = 0; i <= 100; i++){
		if(i % 2 == 0){
			j = j + i
		}else{
		}
	}
	console.log(j)
}


// 5.1
function grap_1(num){
	for(i = 0; i<num;i++){
		console.log("**********")
	}
}


//5.2
function grap_2(num){
	for(var i=0;i<=num;i++){
	    if(i>0){
	        document.write(i+"&nbsp;");
	    }
	    for(var j=1;j<=i+1;j++){
	        document.write('*')
	    }
	    document.write('&nbsp;')
	    document.write("i="+i);
	    if(i<num){
	        document.write(",&nbsp;");
	    }   
	}
	document.write('<p></p>')
}


// 5.3
function grap_3(num){
	var n = parseInt(num/2)
	var g = ""
	for(i = 1 ; i < num+1 ; i++){
		if(i >= 1 && i <= n+1){
			t = 2*i-1
			var g = ""
			for(j = 0 ; j < t ; j++){
				g = g +"*"
				}
			console.log(g)
		}else if(i >n+1 ){
			t = t - 2
			var g = ""
			for(j = 0; j < t  ; j++){
				g = g +"*"
			}
			console.log(g);
		}else{
			console.log("输入错误")
		}
	}
}


// 5.4
function grap_4(num){
	
	for(i=1;i<num+1;i++){
		var t = 2*i - 1
		var g =""
		for(j = 0; j < t  ; j++){
			g = g +"@"
		}
		console.log(g);
	}
}


// 5.5
function print_2(num){
	
	for(i=0;i<num;i++){
		var b =""
		for(j=0 ; j<(num-i) ; j++){
			b = b+"&nbsp;"
		}
		var t = ""
		for(k=0;k<2*i;k++){
		t = t + "&nbsp;"
		}
		if(i==0){
			document.write(b+"&nbsp;*"+"<br/>")
			console.log("*")
		}else{
		document.write(b+"*" + t +"*"+"<br/>")
		console.log("*" +"*")
		}
	}
}


// 6 100-200被3或7整除的数
function print_1(){
	for(i=100; i<=200; i++){
		if(i%3 == 0 || i%7 == 0){
			console.log(i)
		}else{
			
		}
	}
}


// 7 阶乘
function count_1(num){
	var sum = 1
	for(i=1;i<num+1;i++){
		sum = sum*i
	}
	console.log(sum)
}


// 8 1-num 奇数和
function count_2(num){
	var sum = 0
		for(i=1;i <= (num+1)/2;i++){
			sum = sum + (2*i-1)
		}
		console.log(sum)
}


// 9 99乘法表
function print_3(){
	for(i=1; i<10 ; i++){
		var sum = 0
		var ca =""
		var c = ""
		for(j=i ; j<10 ; j++){
			sum = i * j
			ca = i+"*"+j+"="+ sum
			c = c +"&nbsp;"+"&nbsp;"+"&nbsp;"+"&nbsp;"+"&nbsp;"+ ca
		}
		document.write(c+"<br/>" )
	}
}


// 10 100-999水仙花数
function count_3(){
	for(i=100; i<=999;i++){
		var h = parseInt(i/100)
		var t = parseInt(i/10) % 10
		var u = i % 10
		if((100*h+t+u)==(h*h*h+t*t*t+u*u*u)){
			console.log(i)
		}else{
			
		}
	}
}


// 11 20-80被3整除的数,5个一行
function print_4(){
	var k = 0
	for(i=20;i<=80;i++){
		if(i%3 == 0){
			k += 1
			if(k%5==0)
			{
				document.write(i+"<br/>")
			}else{
				document.write(i+"&nbsp;")
			}
		}else{
			
		}
		
	}
}


// 12 1000-2000闰年,4个一行
function print_5(){
	var k = 0
	for(i=1000;i<=2000;i++){
		if((i%4 == 0 && i%100 != 0) || i%400 == 0){
			k++
			if(k%4==0)
			{
				document.write(i+"<br/>")
			}else{
				document.write(i+"&nbsp;")
			}
		}else{
				
		}
	}
}


// 13 阶乘和
function count_4(num){
	var k = 0
	for(i=1; i<= num;i++){
		var sum=1
		for(j=1;j<=i;j++){
			sum = sum*j
		}
		k += sum
	}
	console.log(k)
}


// 14 1-100偶数
function print_6(num){
	for(i=0; i<=num ;i++){
		if(i%2 == 0){
			console.log(i)
		}else{
			
		}
	}
}


// 15 1-100奇数
function print_7(num){
	for(i=0; i<=num ;i++){
		if(i%2 != 0){
			console.log(i)
		}else{
			
		}
	}
}


// 16分式的和
function print_8(num){
	var sum = 0
	for(i=1;i<=num;i++){
		if(i%2 != 0){
			sum = (sum + (1/i))
		}else{
			sum = (sum - (1/i))
		}
	}
	console.log(sum)
}


// 17 输出100-200素数
function count_5(num){
	for(i=100;i<=200;i++)
	{
		var m = 0
		for(j=2;j<i;j++){
			var t = (i % j)
			if(t==0){
				m = m+1
			}else{
				
			}
		}
		if(m == 0){
			console.log(i)
		}else{
			
		}
	}
}


// 18求a+aa+aaa+……+aaa……aaa和
function count_6(num,a){
	var sum = a
	var b = a 
	for(i=1; i<num;i++){
		a = a*10 + b 
		sum = sum + a 
	}
	console.log(sum)
}


// 19百人多排队求人数
function print_9(){
	for(i=100;i<200;i++){
		if(i%3 == 1 && i%4 == 2 && i%5 == 3  ){
			console.log(i)
		}else{
			
		}
	}
}


// 20 商、余、除、被除和163
function print_10(){
	for(i=1;i<150;i++){
		for(j=1;j<150;j++){
			if(parseInt(j/i) == 3){
				if(j%i == 10){
					if(i + j + 3 +10 ==163){
						console.log("除数为:"+i+"被除数为"+j)
					}
					
				}
				
			}
		}
	}
}


// 21猴子搬香蕉
function print_11(){
	var k = 0;
	var n = 100;
	var m = 50;
	var s = 0
	for(i=0;i<200;i++){
		if((i+1)%6 == 0){
			m = m - 1
			k++
		}else if(i == 49){
			m = k
		}
		else if(i == 99){
			m = 50
		}
		else{
			
		}
	}
	console.log(n-k)
}


// 22交费过路口
function count_7(num){
	var k =0
	var n = num
	for(i = 0;i<num;i++){
		if(n > 50000){
			n = n - 0.05*n
			k++
			
		}else{
			k++
			n = n - 5000
			if(n < 0){
				console.log((k-1))
				break;
				}
		}
	}
}


// 23 百钱买百鸡
function print_12(){
	var a = 1
	var b = 1
	var c = 3
	for(i=1;i<=100;i++){
		var a = i
		for(j=1 ; j<=100; j++){
			var b = j
			for(k=1 ; k<=100 ; k++){
				var c = 3*k
				if((i+j+k)==100){
					if((5*i+3*j+(k/3))==100){
						console.log("公鸡为:"+i+"母鸡为:"+j+"小鸡为:"+k)
					}
				}
			}
		}
	}
	
}

学习笔记链接

JS学习笔记——入门基础知识总结

JS学习笔记——入门基础知识总结(数据类型与简单运算)

JS学习笔记——入门基础知识总结(选择语句)

JS学习笔记——基础知识总结(数组)