用户登录验证
-
题目描述:
- 接收用户输入的用户名和密码,若用户名为 “admin” ,且密码为 “123456” ,则提示用户登录成功! 否则,让用户一直输入。
-
题目提示:
- 利用while循环或者do while 循环
var username = prompt('请输入用户名:'); var password = prompt('请输入密码:'); while(username != 'admin' || password != '123456'){ username = prompt('请输入用户名:'); password = prompt('请输入密码:'); } do{ var username = prompt('请输入用户名:'); var password = prompt('请输入密码:'); }while(username != 'admin' || password != '123456');
1.2 求1-100之间个位数不为3的数的累加和。
-
题目描述:
- 求整数1~100的累加值,但要求跳过所有个位为3的数。
-
题目提示:
- 使用%判个位数是否为3
- 用continue实现
var num = 0; //初始值 var sum = 0; // 构建1~100 //判断每个数字个位是否是3 如果是就跳过 while (num < 100) { num++; if (num % 10 == 3) { continue; } sum += num; } console.log(sum);
2 - 升级作业
2.1 简易ATM
-
题目描述:
-
里面现存有 100 块钱。
-
如果存钱,就用输入钱数加上先存的钱数, 之后弹出显示余额提示框
-
如果取钱,就减去取的钱数,之后弹出显示余额提示框
-
如果显示余额,就输出余额
-
如果退出,弹出退出信息提示框
-
-
题目提示:
- 通过输入的数值判断用户操作
- while switch
- break
while(true){ // 可以让用户一直输入 } // 给用户提供选项 1 2 3 4 switch // 输入4 结束整个循环 break var money = 1000; var flag = false; // 默认不停止循环 while(true){ var text = prompt('1:存钱\n2:取钱\n3:查询余额\n4:退出'); switch(text){ case '1': var in_money = parseFloat(prompt('请输入存入金额:')); money += in_money; alert('余额为'+money+'元'); break; case '2': var out_money = parseFloat(prompt('请输入取出金额:')); money -= out_money; alert('余额为'+money+'元'); break; case '3': alert('余额为'+money+'元'); break; case '4': flag = true; break; } if(flag){ break; } }
2.2 求从1 开始第35个能被7和3整除的整数数
- 题目描述:
- 求从1开始第35个能被7和3整除的整数
- 题目提示:
- 通过变量记录是第几个可以被3和7整除的数
var count = 0; // 计数器 记录第几个 var i = 0; //初始值 var result = 0; while(count<35){ // 只要个数小于35 就要一直找下去 i+=21; if(i%21==0){ result = i; // console.log(result); count++; } } console.log(result); 1 2 3 ... 35 21 42 63 停止
2.3
1. 五行星星+矩形+直角三角形(正反)+九九乘法表(正反)+九九乘法表(带边框)+等腰三角形(正反)+菱形
2.4
输入任意一个正整数,求他是几位数?注意: 不能使用字符串,只能用循环. # 思路:看一个正整数是几位数,就看这个数整除几次10以后会变成0 # 例如:123//10->12;12//10->1;1//10->0 (3次) # 2345//10->234;234//10->23;23//10->2;2//10->0 (4次) 12345 12345 => 10 1234 1234 => 10 123 123 => 10 12 12 => 10 1 1=> 10 0 1.保证是个正整数 2.while循环 3 . 计数 var num = parseInt(prompt('请输入一个数字:')); if(num<0){ alert('请输入正整数'); }else{ var count = 1; //数字至少为1位 while(parseInt(num / 10)!=0){ num = parseInt(num / 10); count++; } alert('位数为'+count); }
2.5
一张a4纸的厚度是0.104mm,珠穆朗玛峰是8848.43米,纸张折叠多少次超过珠穆朗玛峰? var num = 0.104; //纸的厚度 var count = 0; // 计数器 记录折叠次数 // while(1){ // num *= 2; // 每次循环重复做的事情 厚度*2 // count++; // 每次循环重复做的事情 次数+1 // if(num>=8848430){ // break; // } // } // console.log(count); while(num<8848430){ num *= 2; count++; } console.log(count);
2.6
统计101~200中素数的个数,并且输出所有的素数。(素数又叫质数,就是只能被1和它本身整除的数) 11 1 11 2345678910 1. 构建 101~200 2. 101 102 103 ... 200 判断是否是素数 3. 判断101是否是素数 2~100 里边是否有数字能被101整数 如果没有 101就是素数 有 101就不是素数 var count = 0; for(var i=101;i<=200;i++){ //console.log(i); // 103 var flag = true; // 假设它是素数 for(var j=2;j<i;j++){ // 234...102 if(i%j==0){ // 除了1和本身数字以外还有别的数可以被101整除 // 如果有 没有必要继续往后了 flag = false; break; } } // 里边的循环结束 我看一下flag到底是什么值 if(flag){ count++; console.log(i+'是素数'); } } console.log('素数的个数是'+count);
2.7
要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资总数,以及平均薪资 var empNum = 0; var salarySum = 0; while(true){ var salary = prompt(`请输入第${empNum}位员工的薪资按q退出`); if(salary == 'q'){ alert('欢迎下次光临'); break; } if(parseFloat(salary)<0){ continue; } empNum += 1; salarySum += salary; } alert(`员工总数为${empNum-1}`); alert(`平均薪资${salarySum / (empNum-1)}`)
2.8
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法) """ 分析: 1. 一百匹马:大马 + 中马 + 小马 = 100 一百担货:3*大马 + 2*中马 + 小马/2 = 100 2. 马匹数量的范围 0 <= 大马 <= 100//3(整除) 0 <= 中马 < 50 小马 --> 100 - 大马 - 中马 for(){ for(){ for(){ } } } """ for(var x=0;x<=33;x++){ for(var y=0;y<=50;y++){ for(var z=0;z<=100;z+=2){ if(x+y+z==100 && x*3+y*2+parseInt(z/2)==100){ console.log(`大马${x} 中马${y} 小马${z}`); } } } }