zoukankan      html  css  js  c++  java
  • JS嵌套循环的典型练习题

    1.斐波那契数列

    ①分数

    <script type="text/javascript">

       var a = 1
       var b = 1
       var c
       for (i = 3;i<=20;i++) {
        c =a+b
        document.write(b+"/"+c+"、")
        a = b 
        b = c
       } 
      </script>

    ②整数

    <script type="text/javascript">

    var a = 1
       var b = 2
       var c
       document.write(a+"、"+b+"、")
       for (i = 3;i<=20;i++){
        
        c = a+b;
        document.write(c+"、")
        a = b
        b = c
       }

     </script>

    2.找水仙花数

    思路:①水仙花数是三位数

               ②分别找出个位数、十位数、百位数

               ③判断这个数是不是等于a*a*a+b*b*b+c*c*c*

    <script type="text/javascript">
       var i,a,b,c
       for (i=100;i<1000;i++) {
        a =  parseInt(i%10) //找出个位数
        b =  parseInt((i/10)%10) //找出十位数
        c =  parseInt(i/100) //找出百位数
        if(i==a*a*a+b*b*b+c*c*c){
         document.write(i+"<br>")
        }
        
       }
      </script>

    3.ATM取款机复杂版(老师原创不易

    需求描述:假设一个简单的ATM机的取款过程为:
      *  首先提示用户输入密码(password),假设默认密码为111111,最多只能输入3次,
      *  超过3次则提示用户“密码错误,请取卡”,结束交易。
     
      如果用户密码正确,再提示用户选择金额(amount),
      “请输入0到6中任意数字选择对应钱数:0手动输入金额,1100元, 2300元,
       3500元, 41000元, 53000元, 65000元”。
     
      输入数字如果错误,提示“输入错误,是否继续 Y/N”,选择Y重新提示输入钱数编号,选择N提示“输入错误,请取卡!”。
     
      选择数字为1到6,打印对应钱数, 并提示“是否继续 Y/N”。
     
      选择数字0,ATM机只能输出100元纸币,
     
      自定义钱数要求最低为100元,最高为1000元。
     
      如果用户输入的金额符合上述要求,
      则打印输出用户取的钱数,并提示“取款完成,是否继续Y/N”;否则输出一句话“金额错误,
      是否继续 Y/N”,如果用户输入Y,提示用户重新选择取款金额,如果用户输入 N,
      打印“交易取消,请取卡!”

    思路:

    1、验证密码
          ① 密码正确,继续执行下面操作;
          ② 密码错误3次,return;
       2、取款操作。全部包含在 while循环内部。
          ① 提示选择编号;
          ② 根据编号,给money赋值。用switch结构实现。
            1~6:直接给money赋固定值,0:手动赋值操作;
          ③ 验证取款是否成功。money-本次取款金额,moneySum-本次取款之前的总金额
            判断moneySum+money是否>20000,3种情况:
                >20000 本次取款超额,但moneySum之前并不足20000,继续下次循环;
                =20000 取完本次money后,刚好满额。money可以加到sum上,然后return;
                <20000 取完本次money后,仍未上限。money可以加到sum上,继续下次循环。
          ④ 验证是否继续,while-if结构实现,有3种情况:
                Y/y 将小循环break,继续执行取款大循环;
                N/n 直接return,停止所有操作;
                其他 continue,继续执行小循环,重复输入Y/N

      <script type="text/javascript">
       !function(){
        var IsPwdTrue = false;
        var a = true;
        var b = true
        for (var i = 1;i<=3;i++){
        var pwd = prompt("请输入密码")
        if(pwd == 111111){
         IsPwdTrue = true;
         break;
        }else{
         alert("密码错误");
        }
       }
        if(IsPwdTrue == false){
         alert("密码错误三次,请取卡");
         return;
        };
        
        //取款操作
        var money = 0;
        var moneySum = 0
        while(a){
         console.log("请输入0到6中任意数字选择对应钱数:");
         console.log("0à手动输入金额,1à100元, 2à300元,3à500元, 4à1000元, 5à3000元, 6à5000元");
         var num = Number (prompt("请输入操作序号:")) ;
         switch(num){
          case 0 :
          money = prompt("请输入您的取款金额")
          alert("您的本次取款金额为"+money)
          break;
          
          case 1 :
          money = 100
          alert("您的本次取款金额为"+money)
          break;
          
          case 2 :
          money = 300
          alert("您的本次取款金额为"+money)
          break;
          
          case 3 :
          money = 500
          alert("您的本次取款金额为"+money)
          break;
          
          case 4 :
          money = 1000
          alert("您的本次取款金额为"+money)
          break;
          
          case 5 :
          money = 3000;
          alert("您的本次取款金额为"+money)
          break;
          
          default:
          alert("密码输入有误,请重新输入")
          break;
         }
         
         if(moneySum+money>20000){
          alert("取款金额超过20000,取款失败");
          continue;
         }else if(moneySum+money<20000){
          moneySum +=money;
          alert("取款成功"+(moneySum));
         }else{
          moneySum +=money;
          alert("取款金额超过20000,退出系统")
          break;
         }
         while(b){
          var isGo = prompt("是否继续?(Y/N)");
          if(isGo == "Y" || isGo == "y"){
           break;
          }else if(isGo == "N" || isGo == "n"){
           alert("退出系统");
           a = false;
           b = false;
           break;
          }else{
           alert("输入错误,请重试");
           continue;
          }
         }

        }
       }();
      </script>

  • 相关阅读:
    每天玩转3分钟 MyBatis-Plus
    每天玩转3分钟 MyBatis-Plus
    每天玩转3分钟 MyBatis-Plus
    git仓库管理
    【SpringCloud之pigx框架学习之路 】2.部署环境
    【SpringCloud之pigx框架学习之路 】1.基础环境安装
    Ubuntu 14.04 安装mysql
    Netflix是什么,与Spring Cloud有什么关系
    现学现用-我的第三个小小小私活
    申请微信小游戏账号
  • 原文地址:https://www.cnblogs.com/zhanghaoxiaoan/p/7424831.html
Copyright © 2011-2022 走看看