1. 穷举 100元钱换零钱,可以换5元,10元、20元 或者50元。请问有多少种换法?
var count1=0;
for(a=0;a<=20;a++){
for(b=0;b<=10;b++){
for(c=0;c<=5;c++){
for(d=0;d<=2;d++){
if(5*a+10*b+20*c+50*d==100){
count1++;
}
}
}
}
}
console.log(count1);
2. 冒泡排序
// 思路
// 利用下标将元素按照顺序依次和后续的值进行比较 如果当前元素的值大于后续元素的值 则两者换
var arr=[5,4,3,2,1];
//因为js中下标从0开始计数 所以外层循环起始值为0 最大值应该小于arr的长度
for(e=0;e<arr.length;e++){
for(f=0;f<arr.length-e-1;f++){
if (arr[f]>arr[f+1]) {
var temp=arr[f];
arr[f]= arr[f+1];
arr[f+1]=temp;
}
}
}
document.write(arr);
3. 银行卡密码的判断
// 用户输入密码正确 提示密码正确 代码停止
// 用户输入密码错误 提示请重新输入
// 用户输入密码错误三次 提示该卡已锁定
for(h=1;h<=3;h++){
var pwd=prompt('请输入密码');
if (pwd==250250) {
alert('密码正确');
break;
} else {
alert('密码错误。请重新输入');
continue;
}
}
if(h>3){
alert('该账户已被锁定');
}
4. 求任意一个数的阶乘
// 通过prompt()输入一个数 n,封装一函数返回n!,求1!+2!+3!+4!+……+ n!。
var n=prompt('请输入一个数');
var sum=1;
for(var i=1;i<=n;i++){
sum*=i;
}
document.write(sum);
//封装函数
function fun(n){
var sum=1;
for(var i=1;i<=n;i++){
sum*=i;
}
return sum;
}
console.log(fun(5));
5. 列举100-900之间所有的水仙花数
for(var num=100;num<=900;num++){
var g=parseInt(num/1%10);
var s=parseInt(num/10%10);
var b=parseInt(num/100%10);
if(g*g*g+s*s*s+b*b*b===num){
document.write(`${num}是一个水仙花数`);
}
}
循环语句
含义:可以多次重复使用的代码块
分类:
while语句
语法:初始化的变量 var i=1;
while(条件){ while(i<=520){
执行的代码块; document.write(媳妇我爱你);
增量/减量(改变循环体) i++;
} }
注意:一定要改变循环体,否则代码会陷入死循环;
打断点可以查看代码效果:检查-资源-播放-页面刷新(出现debugger)-next function
代码执行过程:
1.初始化的值
2.判断条件
3.执行的代码块
4.增量/减量
5.返回2进行循环,直到条件不满足时跳出循环体
一般用于不明确次数的判断
do..while语句
语法:初始化的变量
do{
执行的代码块;
增量/减量;
}while(条件);
while和do..while的区别:前者先判断后执行,后者先执行后判断;
for循环语句
语法:for(初始化的值;条件;增量/减量){执行的代码块}
注意:3个表达式之间用分号隔开,分号不可以省略
for双层循环:
语法:for(初始化的值;条件;增量/减量){for(初始化的值;条件;增量/减量){执行的代码块}}
注意:外行内列 外层循环控制行数 内层循环控制列数
外层循环执行一次,内层循环执行所有。
外层循环和内层循环的变量名不可以一致
跳转语句:
break 中止/结束
continue 继续
利用for循环实现杨辉三角:
var a,b,c,d;
for(a=1;a<=4;a++){
for(b=1;b<=4-a;b++){
document.write(' ');
}
for(c=1;c<=a;c++){
document.write(c);
}
for(d=a-1;d>=1;d--){
document.write(d);
}
document.write('<br>');
}
效果:
1
121
12321
1234321