continue语句、do-while循环与循环嵌套

continue语句

(1)再次分析判断任意数是否为质数的算法。
(2)在for循环中,循环变量的初值是2,循环变量的终值是。让根
号x和循环变量求余。
(3)$

(".btn").click(function(){
		var x=$("input[name=int]").val();
		for(var i=2;i<=Math.sqrt(x);i++){
			if(x%i!==0){
				continue;     //每次遇到continue语句时,都要计算表达式3
			}else{
				break;
			}
		}

用continue语句就解决了上面x/i的余数不等于0不能说明问题

欧几里得原理:计算两个数的最大公约数和最小公倍数。【辗转相除法】
设两个非负整数a和b。当b不等于0时,辗转进行如下操作
r=a%b; a=b; b=r;
直到b等于0时,a的值就是这两个非负整数的最大公约数。
而这两个非负整数的最小公倍数可以利用下列公式计算得到:

 var a=10,b=5;//定义变量a等于10,b等于5;
var x=a,y=b;//x,y意义在于储存a,b的值
var r;
while(b!==0){//当b不等于0时
	r=a%b;//r等于a除余b的值
	a=b;//此时b赋值给a 
	b=r;//r赋值给b
}

console.log(x + “和” + y + “的最大公约数:” + a);
console.log(x + “和” + y + “的最小公倍数:” + (x*y)/a);

do-while循环

1、结构:do{
//循环体;
}while(条件);
2、执行流程:当条件成立时循环体,当条件不成立时退出循环,继续执行循环后面的句子。
3、while循环和do-while循环的区别:
当第一次判断条件时,条件就不成立。while循环中的循环体一次都不执行;do-while循环的循环体已经执行了一次。

 var i=1,sum=0;
do{
	 sum=sum+i;
	 i++;
	 //上述两行代码执行完成之后再去执行while。
}while(i<=100);
console.log(sum);

循环嵌套

概念:while循环、for循环、do-while循环之间进行互相嵌套就被称为“循环嵌套”
计算1-10的阶乘和,即1!+2!+3!+4!+5!+6!+7!+8!+9!+10!=?

var sum=0;
for(var i=1;i<=10;i++){
   var fact=1;
        for(var j=1;j<=i;j++){
           fact=fact*j;
}
sum=sum+fact;
}
console.log(sum);

A .外层循环的循环变量取某一个值时,外层循环体所包含的内层循环必须完全执行完才可以
B .外层循环的循环变量和内层循环的循环变量不能同名。
C .循环嵌套中内层循环体的执行次数 = 外层循环的执行次数 * 内层循环的执行次数。
在页面中用星号输出菱形

//上三角
for(var i=4;i>=0;i--){
	for(j=1;j<=i;j++){
		document.write("&nbsp;");
	}
	for(j=1;j<=9-2*i;j++){
		document.write("*");
	}
	document.write("<br />");
}
//下三角
var w=7;   //配合实现下三角中输出*的个数规律【实际规律:9-2*i】
for(var i=1;i<=4;i++){
	for(j=1;j<=i;j++){
		document.write("&nbsp;");
	}
	for(j=1;j<=w;j++){
		document.write("*");
	}
	w-=2;   //下三角中每一行*的个数是-2的关系
	document.write("<br />");
}

上三角规律:
外层循环变量i=1时,输出4s-1*-1b
i=2时,输出3s-3*-1b
i=3时,输出2s-5*-1b
i=4时,输出1s-7*-1b
i=5时,输出0s-9*-1b
下三角规律:
外层循环变量i=1时,输出1s-7*-1b
i=2时,输出2s-5*-1b
i=3时,输出3s-3*-1b
i=4时,输出4s-1*-1b

穷举算法

概念:穷尽所有的可能一一列举出来。
理论上穷举可以结合字典系统对密码进行暴力破解,登录时输入的验证码可以解决穷举破解问题。

var rooster=0,hen,chicken;
//rooster(公鸡)=0,hen(母鸡),chicken(小鸡)
while(rooster<20){//(当公鸡小于20时)
	hen=0;//(母鸡等于0)
	while(hen<=33){//(当母鸡小于等于33时)
		chicken=100-rooster-hen;//小鸡等于100减去公鸡数量减去母鸡数量
		if(rooster*5+hen*3+chicken/3===100){
		//如果公鸡数量*5+母鸡数量乘以三+小鸡数量除以3等于100时
			console.log(rooster,hen,chicken);
			//输出公鸡,母鸡,小鸡的数量
		}
		hen++;
	}
	rooster++;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值