- js 循环求值 案例 拓展
<script>
//求和演示
var sumWhile = 0;
var i=1;
while(i<=100){
sumWhile += i;
i++;
}
console.log(sumWhile);
var j = 1;
var sumDoWhile = 0;
do{
sumDoWhile += j;
j++;
}while(j<0);
console.log(sumDoWhile);
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//无论哪个循环 都是在条件为false的情况下终止循环
//break;推出整个的循环
//1——100之间所有的数字的输出
// var i=1;
// while (i<100) {
// console.log(i);
// i++;
// }
// // do {
// // } while (条件);
// do {
// console.log(i);
// i++;
// } while (i<100);
// var a=0;
// do {
// console.log(a);
// } while (a>2);
//计算1-100之间所有数字的和
//100以内奇数的和
// var k=1;
// //定义一个变量 记录 个数
// var sum=0;
// // do {
// // sum+=k; //sum=sum+k=1
// // k++;
// // } while (k<=100);
// // console.log(sum);
// //100以内偶数的和
// var count=0;
// do {
// if(k%2==0){
// count++;
// sum+=k;
// }
// k++;
// } while (k<=100);
// console.log(sum);
// console.log(count);
//求100以内所有3的倍数的和
// var k=1;
// var sum=0;
// do {
// if(k%3==0){
// sum+=k;
// }
// k++;
// } while (k<100);
// console.log(sum);
// console.log(k);
// 使用do-while循环:输出询问“我爱你,嫁给我吧?”,
// 选择“你喜欢我吗?(y/n):",如果输入为y则打印”我们形影不离“,
// 若输入为n,则继续询问
do {
var msg=prompt('我爱你,嫁给我吧?(yes/no)');
if(msg=='yes'){
document.write('我们形影不离');
break; //退出整个循环
}else{
document.write('输入有误');
// msg='no';
}
} while ('no');
</script>
</body>
</html>
2.for循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//输出1-100之间所有的数字
// for(var i=1;i<=100;i++){
// console.log(i);
// }
//输出1-100之间所有奇数的和
// var sum=0;
// for(var i=1;i<=100;i++){
// if(i%2!=0){
// sum+=i;
// }
// }
// console.log(sum);
//1-100之间所有和的平均值
//分析: 和/次数
var sum=0;
var conut=0;
for(var i=1;i<100;i++){
conut++; //次数相加
sum+=i; //求和
}
console.log(sum/conut);
</script>
</body>
</html>
拓展
<script>
//从1乘到100;
//计数器
// var product = 1;
// for(var i=1;i<=10;i++){
// product *= i;
// }
// alert(product);
//计算出1—100之间所有不能被7整除的整数的数字之和。
// var sum = 0;
// for(var i=1;i<=100;i++){
// //判断,不能被7整除的数字。i%7!=0;
// if(i%7!==0){
// sum+=i;
// }
// }
// alert(sum);
// alert(5050*6/7);
//计算出1—100之间所有不能被3整除的整数的和大于(或等于)2000的数字。
var sum = 0;
for(var i=1;i<=100;i++){
if(i%3 !== 0){
sum+=i;
if(sum>=2000){
console.log(sum);
}
}
}
break和continue
//计算出1到100之间所有不能被7整除的整数之和(用continue)
// var sum = 0;
// for(var i=1;i<=100;i++){
// //判断:如果能被7整除用continue跳出本次循环进入下一循环
// if(i%7===0){
// continue;
// }
// sum+=i;
// }
// console.log(sum);
//计算出1到100之间所有不能被3整除的整数的和(用continue)
// var sum = 0;
// for(var i=1;i<=100;i++){
// if(i%3===0){
// continue;
// }
// sum+=i;
// }
// console.log(sum);
//求1到100之间所有不能被3整除的整数的第一个大于2000的和
// var sum = 0;
// for(var i=1;i<=100;i++){
// if(i%3===0){
// continue;
// }
// sum+=i;
// if(sum>2000){
// alert(sum);
// break;
// }
// }
//求200-300之间所有的奇数的和
// var oddSum = 0;
// var sum = 0;
// for(var i=200;i<=300;i++){
sum+=i;
// if(i%2===0){
// continue;
// }
// oddSum += i;
// }
// alert(oddSum);
alert(sum);
//求200-300之间第一个能被7整数的数
// for(var i=200;i<=300;i++){
// if(i%7===0){
// alert(i);
// break;
// }
// }
3.死循环案列
//死循环求和
// var sum = 0;
// var i=1;
// while(true){
// sum+=i;
// i++;
// if(i>100){
// break;
// }
// }
// alert(sum);
//需求:点击取消一直弹窗下去。如果点击确定,立马结婚。
do{
var bool = confirm("求求你啦,嫁给我吧,我很丑,但是我很温柔啊...");
if(bool){
alert("我们去三亚拍结婚照吧,现在才3折优惠啊!");
break;
}
//如果点击的是取消,那么bool的值是false,为了进入下次循环,那么把他变成true;利用的就是非!
}while(!bool);
4.模拟atm取款机取款
do while做法
**<script>
//输入密码取款, 密码(123)不对给出剩余几次机会? 如果三次都有误,直接告诉用户账户冻结
//密码输入正确, 开始取款,取款金额为2000元, 不足2000告诉用户余额不足
//do while循环做法
var count=3;
var money=2000; //三次密码机会
do {
var psw=prompt('请输入您的取款密码');
if(psw=='123'){
alert('密码正确,可以取款了');
var money=prompt('请输入您的取款金额');
if(money<=2000){
alert('取款成功');
break;
}else if(money>2000){
alert('您的余额不足');
break;
}
}
else{
count--;
if(count==0){
alert('密码输入有误,账户冻结');
break;
}
alert('密码输入有误,还可输入'+count+'次');
}
} while (count>0);
</script>
for 循环做法
//for循环 做法
for(i=2;i>=0;i--){
var mima=prompt('请输入密码');
if(mima==123){
document.write('密码正确');
var qukuan=prompt("取款金额");
if(qukuan==2000){
document.write('取款成功');
}else if(qukuan<2000){
document.write('取款金额'+qukuan);
}else{
document.write('金额不足');
}
break;
}else{
alert("密码错误"+"剩余次数"+i)
}
}
拓展练习
<script>
//求整数1-100的累加值,但要求碰到个位数为3的数则停止累加
// var sum=0;
// for(var i=1;i<100;i++){
// if(i%10==3 && i>10){
// break;
// }
// sum+=i;
// }
// console.log(sum);
// for(var i=1;i<5;i++){
// if(i%10==3){
// continue;
// }
// sum+=i;
// }
// console.log(sum);
</script>
<script>
//求1-100之间不能被7整除的整数的和(用continue)
// var sum=0;
// for(var i=1;i<=100;i++){
// if(i%7!==0){
// continue;
// }
// sum+=i;
// }
// console.log(sum);
//求1~100 之间, 除了能被7整除之外的整数和
// var sum=0;
// for(var i=1;i<=100;i++){
// if(i%7==0){
// continue;
// }
// sum+=i;
// }
// console.log(sum);
//求200-300之间所有的奇数的和(用continue)
// var sum=0;
// for(i=200;i<=300;i++){
// if(i%2!=0){
// sum+=i;
// continue;
// }
// }
// console.log(sum);
//求200-300之间第一个能被7整数的数(break)
// var sum=0;
for(var i=200;i<=300;i++){
if(i%7==0){
alert(i);
break;
}
}
// console.log(sum);
</script>
5.使用for循环打印矩形,要求每次只能输入一个☆
var sum = ‘’;
for (var i = 1; i <= 4; i++) {
for (var j = 1; j <= 5; j++) {
sum = sum + ‘☆’
}
sum += ‘\n’;
}
console.log(sum);
6.使用for循环打印三角形
// 使用for循环打印三角形
var sum = ‘’;
for (var i = 1; i <= 10; i++) {
for (var j = i; j <= 10; j++) {
sum = sum + ‘☆’
}
sum += ‘\n’;
}
console.log(sum);
7.使用for循环打印99乘法表
var sum = ‘’;
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
//1*5=5
sum = sum + i + ‘×’ + j + ‘=’ + i * j+ ‘\t’
}
}
sum += ‘\n’;
}
console.log(sum);
8.接收用户输入的用户名和密码 ,若用户名为“admin”,密码为“123456”,则显示用户登录成功!否则,让用户一直输入。
var yonghuming = prompt(‘请您输入用户名’)
var mima = prompt(‘请您输入密码’)
while (yonghuming != ‘admin’ && mima != ‘123456’) {
yonghuming = prompt(‘请您输入用户名’)
mima = prompt(‘请您输入密码’)
}
alert(‘登陆成功’)
9.求整数1-100的累加值,但要求跳过所有个位数为3的数【用continue实现】
var shuzi = 0;
for (var i = 1; i <= 100; i++) {
if (i % 7 == 0) {
continue;
}
shuzi = shuzi + i
}
console.log(shuzi);