zoukankan      html  css  js  c++  java
  • 15-循环小demo

    05-循环的小demo

    1.补0
        <script>
            // 数字小于10,在前面补0
            var num1 = +prompt('请输入0~59的数字');
            var result = num1 < 10 ? '0' + num1 : num1;
            alert(result);
        </script>
    
    2.求出1-100间所有个位数不为3的和(continue)
        <script>
            //需求:求出1-100间所有个位数不为3的和
    
            // 1.定义一个sum变量来储存和
            var sum = 0;
            // 2.先获取1-100的所有数
            for (var i = 1; i <= 100; i++) {
                // 3.10以下个位是3的数字只有一个,10-100之间的数字需要单独获取个位数
                if (i >= 10 && i < 100) {
                    // 4.2位数获取各位数就是对10取模
                    var ge = parseInt(i % 10);
                    // 5.如果个位数是3,就打印出来并且跳过
                    if (ge === 3) {
                        console.log(i);
                        continue;
                    }
                    // 6.sum加每一个i
                    sum += i;
                }
            }
            // 7.输出sum,注意10位数以下也有一个个位数是3的数,需要减去
            console.log(sum - 3);
        </script>
    
    3.求从1开始第35个能被7和3整除的整数
        <script>
            // 需求:求从1开始第35个能被7和3整除的整数
    
            // 1.定义一个变量储存那个数
            var sum = 0,
                // 2.定义一个变量计算是第几个
                num = 0;
            // 3.循环
            for (var i = 1; i > 0; i++) {
                // 4.能被7整除并且能被3整除
                if (i % 7 === 0 && i % 3 === 0) {
                    // 5.产生一个数就自增1
                    num++;
                    // 6.产生一个数就与sum相加
                    sum += i;
                }
                // 7.输出第35个
                if (num === 35) {
                    console.log(sum);
                    console.log(num);
                    break;
                }
            }
        </script>
    
    4.简易的ATM机
        <script>
            // - 里面现存有  100 块钱。
            // - 如果存钱,就用输入钱数加上先存的钱数, 之后弹出显示余额提示框
            // - 如果取钱,就减去取的钱数,之后弹出显示余额提示框
            // - 如果显示余额,就输出余额
    
            //1.初始余额 100
            var money = 100;
            //2.存钱
            var save = 0;
            //3.取钱1
            var get = 0;
    
            while (true) {
                var user = +prompt('请输入您要的操作:' + '
    1.存钱' + '
    2.取钱' + '
    3.显示余额' + '
    4.退出');
                //存钱
                if (user === 1) {
                    save = +prompt('请输入要存入的金额');
                    var res = getBalance();
                    alert('您的余额是' + res);
                } else if (user === 2) {//取钱
                    get = +prompt('请输入要取出的金额');
                    var res = getBalance();
                    if (res >= 0) {
                        alert('您的余额是' + res);
                    } else {//余额不足
                        alert('余额不足');
                    }
                } else if (user === 3) {//显示余额
                    var res = getBalance();
                    alert('您的余额是' + res);
                } else if (user === 4) {//退出
                    break;
                } else {
                    alert('指令有误,请输入1~4指令');
                }
            }
            function getBalance() {
                var balance = money + save - get;
                return balance;
            }
        </script>
    
    5.登录
        <script>
            // 需求:用户输入用户名和密码,只要不是admin、888888就一直提示用户名或密码错误,请重新输入。
            // 1.接收用户输入的用户名
            var user = prompt('用户名');
            // 2.接收用户输入的密码
            var myPass = prompt('密码');
    
            // true:表示while是一个死循环
            while (true) {
                // 3.如果用户名和密码都正确
                if (user === 'admin' && myPass === '888888') {
                    alert('登陆成功,欢迎回来');
                    break;  //当用户登陆成功之后,跳出循环。
                } else if (user !== 'admin') {
                    alert('用户名错误,请重新输入');
                    //4.如果用户名错误,重新弹出输入框接收用户名
                    user = prompt('请重新输入用户名');
                } else {
                    alert('密码错误');
                    //4.如果密码错误,重新弹出输入框接收密码
                    myPass = prompt('请重新输入密码');
                }
            }
        </script>
    

    do...while

        <script>
            // 直到密码正确才停止
            do {
                var user = prompt('请输入用户名');
                var mypass = prompt('请输入密码');
            } while (user !== 'admin' || user !== '123456')
        </script>
    

    三次机会

        <!-- 密码 -->
        <script>
            // 1.获取用户输入的东东
            var uPass = prompt('请输入密码');
    
            // 2.判断
            if (uPass !== '88888') {
                // 3.三次机会
                for (var i = 2; i > 0; i--) {
                    uPass = prompt('密码错误,您还有' + i + '次机会');
                }
                alert('登录失败,账号锁定');
            } else {
                alert('登陆成功');
            }
        </script>
    

    q强制退出

        <script>
            // 输入密码,知道密码正确或输入q才停止程序
            // 1.获取用户输入的东东
            var user = prompt('请输入用户名');
            var uPass = prompt('请输入密码');
    
            // 3.进入死循环
            while (true) {
                // 如果输入正确,出循环
                if (user === 'admin' && uPass === '888888') {
                    alert('登陆成功');
                    break;
                } else {
                    // 不正确一直重新输入
                    user = prompt('请重新输入用户名');
                    uPass = prompt('请重新输入密码');
                    // 4.输入q强制退出
                    if (user === 'q' || uPass === 'q') {
                        break;
                    }
                }
            }
        </script>
    
    6.录年龄
        <script>
            //需求:输入5个人的年龄,计算年龄之和和平均年龄,如果年龄为负数或大于100,则提示错误重新输入
            // 1.定义sum接收年龄
            var sum = 0;
            // 2.循环5次
            for (var i = 1; i <= 5; i++) {
                // 3.定义age接收用户输入的年龄
                var age = +prompt('请输入第' + i + '个人的年龄');
    
                // 4.建立一个死循环
                while (true) {
                    // 5.如果用户输入不为空
                    if (age !== '') {
                        // 6.sum加上每一个age
                        sum += age;
                        // 7.当年龄有误
                        while (age < 0 || age > 100) {
                            // 8.减去输错的年龄
                            sum -= age;
                            // 9.重新赋值年龄
                            age = +prompt('第' + i + '个人年龄有误请重新输入年龄');
                            // 10.重新计算年龄
                            sum += age;
                        }
                        // 最终退出循环
                        break;
                    } else {
                        // 11.如果用户输入为空就让他重新输入
                        var age = +prompt('输入错误:请重新输入第' + i + '个人的年龄');
                    }
                }
            }
            alert('年龄总和是:' + sum + '
    平均年龄是:' + sum / 5);
        </script>
    
    7.水仙花数
        <!-- 水仙花:三位数,且各位上的数立方和等于它本身 -->
        <!-- abc = a*a*a + b*b*b + c*c*c -->
        <script>
            // 1.遍历所有的三位数
            for (var i = 100; i <= 999; i++) {
                // 2.取每个位上的数值
                var ge = i % 10;
                var shi = parseInt(i / 10 % 10);
                var bai = parseInt(i / 100 % 10);
                // 3.判断是否为水仙花
                if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) === i) {
                    console.log(i);
                }
            }
        </script>
    
    8.图形类

    正方形

        <script>
            var start = '';
            // 外层循环控制行
            for (var i = 0; i < 5; i++) {
                // 内层循环控制列
                for (var j = 0; j < 5; j++) {
                    start += '卍';
                }
                start += '
    ';
            }
            console.log(start);
        </script>
    

    正反直角三角形

        <script>
            // 1.定一个字符串
            var start = '';
            for (var i = 0; i < 10; i++) {
                // 正直角三角形
                for (var j = 0; j < i; j++) {
                    start += '卍';
                }
                start += '
    ';
                // 倒直角三角形
                for (var j = i; j < 10; j++) {
                    document.write('卍');
                }
                document.write('</br>');
            }
            console.log(start);
        </script>
    

    等腰三角形

        <script>
            // 1.获取要的行
            var row = +prompt('你要几行的?');
            // 外层行
            for (var i = 1; i <= row; i++) {
                //前空格
                for (var r = row - i; r >= 0; r--) {
                    document.write(' ');
                }
                // 卍
                for (var j = 1; j <= 2 * i - 1; j++) {
                    document.write('卍');
                }
                // 后空格
                for (var r = row - i; r >= 0; r--) {
                    document.write(' ');
                }
                document.write('</br>');
            }
        </script>
    


    菱形

         <script>
            // row = 6
            // 菱形上:1, 3, 5, 7, 9,11
            // * = 2n-1
            var row = +prompt("输入行数");
            // 上面一个等腰三角形
            for (var i = 1; i <= row; i++) {
                // 空格=总行数-当前行,递减
                for (var r = row - i; r >= 0; r--) {
                    document.write(' ');
                }
                for (var j = 1; j <= 2 * i - 1; j++) {
                    document.write('卍');
                }
                document.write('</br>');
            }
            // 下面一个少一个定边的等腰三角形
            // 菱形下:9,7,5,3,1
            // 卍 = (2*(6-当前行))-1
            for (i = 1; i <= row - 1; i++) {
                // _从0开始
                for (r = 0; r <= i; r++) {
                    document.write(' ');
                }
                for (j = (2 * (row - i)) - 1; j >= 1; j--) {
                    document.write('卍')
                }
                document.write('</br>');
            }
        </script>
    

    9.组数字
        <script>
            // 有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
            // 1.定义一个count储存个数
            var count = 0;
            // 2.循环4次百位
            for (var a = 1; a <= 4; a++) {
                // 3.循环4次十位
                for (var b = 1; b <= 4; b++) {
                    // 4.循环4次个位
                    for (var c = 1; c <= 4; c++) {
                        // 5.个位十位百位互不相等
                        if (a !== b && a !== c && b !== c) {
                            count++;
                            console.log(a * 100 + b * 10 + c);
                        }
                    }
                }
            }
            console.log('总共有' + count + '个');
        </script>
    
    10.判断年月日
       <script>
            // 输入年月日,判断输入的日期是这一年的第几天
            // 1.获取用户输入的东东
            var year = parseInt(prompt("请输入年份:"));
            var month = parseInt(prompt("请输入月份:"));
            var day = parseInt(prompt("请输入日期:"));
            // 2.第几天
            var sum = 0;
            //3. 开关
            var flag = true;
    
            // 4.判断用户输入的是否合理范围
            if (year > 0 && year < 9999 && month <= 12 && month >= 1 && day <= 31 && day >= 1) {
                // 5.遍历月份
                for (var i = 1; i < month; i++) {
                    // 大月
                    if (i === 1 || i === 3 || i === 5 || i === 7 || i === 8 || i === 10 || i === 12) {
                        sum += 31;
                        // 小月
                    } else if (i === 4 || i === 6 || i === 9 || i === 11) {
                        sum += 30;
                        // 二月
                    } else if (i === 2) {
                        sum += 28;
                    }
                }
    
            } else {
                alert('您输入的日期有误');
                // 输入错误,关闭开关,退出选混
                flag = false;
            }
    
            // 7.闰年的2月有29天,所以2月以后的月份日子都+1
            if ((year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) && month > 2) {
                sum += (day + 1);
            } else {
                sum += day;
            }
            if (flag) {
                alert('您输入的日期为' + year + '年' + month + '月' + day + '日' + '
    是这年的第' + sum + '天');
            }
        </script>
    
    11.翻转数字
        <!-- 输入一个数,弹出这个数字的反转数 -->
        <script>
            var num = prompt('请输入一个数字');
            // 反转数
            var num1 = 0;
            while (num >= 10) {
                // 个位
                num1 = num % 10;
    
                // 十位
                num = parseInt(num / 10 % 10);
                alert(num1 * 10 + num);
            }
        </script>
    
    12.九九乘法表(tabel版本)
        <script>
            // 套一个表格标签
            document.write('<table>');
            // 1.外层控制行
            for (var i = 1; i <= 9; i++) {
                // 每行前都套一个tr
                document.write('<tr>');
                // 2.内层控制列
                for (var j = 1; j <= i; j++) {
                    // 每列前套一个td
                    document.write('<td>')
                    document.write(i + '*' + j + '=' + i * j + '&emsp;');
                }
                // 列结束套一个td闭合
                document.write('</td>')
            }
            // 行结束后补tr闭合标签
            document.write('<tr>');
            // 表格标签结尾
            document.write('</table >');
        </script>
    
  • 相关阅读:
    浅谈欧拉定理的证明
    10-8 王小呆的校内互坑赛题解
    10-8 王小呆的校内互坑赛题面
    线段树 洛谷P3932 浮游大陆的68号岛
    BFS+最小生成树+倍增+LCA【bzoj】4242 水壶
    洛谷P1119 灾后重建
    border-radius:50%和100%的区别
    react-native Android release打包失败
    关于react理解的文章
    atom常用快捷键-mac亲测
  • 原文地址:https://www.cnblogs.com/xiaoaitongxue/p/12739602.html
Copyright © 2011-2022 走看看