JS中有关分支结构循环结构以及函数应用的一些简单练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中有关分支结构循环结构以及函数应用的一些简单练习相关的知识,希望对你有一定的参考价值。

 

案例一:搬桌子    年龄大于七岁男女都可以搬桌子,年龄小于七岁大于五岁的男生可以搬桌子;

     var num =parseInt(prompt("请输入你的年龄"))
     var sex = prompt("请输入你的性别:男/女")
            if(num>=7){
            alert("你可以搬桌子哦")
        }
        else{
            if(num>=5&&sex=="男"){
                alert("你可以搬桌子哦")
            }
            else{
                alert("你还小,不可以搬桌子啊")
            }
        }

案例二:迷你计算器  : 输入两个数以及运算符号得出相应的运算结果。(本题使用switch ()case:   来做也很方便)

                      var num1 = parseFloat(prompt("请输入第一个数:"));
              var fu = prompt("请输入操作符号:");
              var num2 = parseFloat(prompt("请输入第二个数:"));
        
                    if(fu=="+"){
                 var result =num1+num2
            }
            else{
                if(fu == "-"){
                     var result =num1-num2
                }
                else{
                    if(fu == "*"){
                     var result =num1*num2
                }
                else{
                    if(fu == "/"){
                     var result =num1/num2
                }
                else{
                    alert("您的输入有误")
                }
                }
                }
                
                
                
            }
            
            alert("结果为:"+result);

案例三 根据年龄和成绩给学生评价:如果年龄 大于20岁,60分及以上给及格,60分以下告知回去准备补考;如果年龄小于20岁,成绩大于等于60分,夸奖他是个天才,如果成绩低于60分,告诉他不要气馁。

 

var num = parseFloat(prompt("请输入你的成绩"));
        var age =  parseInt(prompt("请输入你的年龄"));
        if(num>=60){
            if(age>=20){
                alert("恭喜你及格了!")
            }
            else{
                alert("你真是个天才!")
            }
        }
        else{
            if(age>=20){
                alert("回去准备补考吧,骚年!")
            }
            else{
                alert("你还小,再加油哟!")
            }
        }

 

 

 

案例四 企业发放奖金

 

var num =parseFloat(prompt("请输入您的利润_万元"));
             
             if(num<=10){
                 alert("您的奖金为"+num*0.1+"万元")
                 
             }
             else if(num<=20){
                     alert("您的奖金为"+(10*0.1+(num-10)*0.075)+"万元")
                 }
             else  if(num<=40){
                     alert("您的奖金为"+(10*0.1+10*0.075+(num-20)*0.05)+"万元")
                 }
             else if(num<=60){
                     alert("您的奖金为"+(10*0.1+10*0.075+20*0.05+(num-40)*0.03)+"万元")    
                 }
             else if(num<=100){
                     alert("您的奖金为"+(10*0.1+10*0.075+20*0.05+20*0.03+(num-60)*0.015)+"万元")    
                 }
             elseif(num>100){
                     alert("您的奖金为"+(10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(num-100)*0.01)+"万元"     
                 }
                 else{
                     alert("您的输入有误")
                 }
                     
                
             }

 

 

案例五 找出所有的水仙花数

步骤:1、找出所有三位数:100~999
    2、写出水仙花数的判定条件
            for(var i = 100; i < 1000; i++) {
                var a = i % 10;
                var b = parseInt((i / 10) % 10);
                var c = parseInt(i / 100);
                if(i == a * a * a + b * b * b + c * c * c) {
                    document.write(i + "<br />");
                }
            }

案例六 输入一个月份确定其所在季度

 

             方法一:
var moon=prompt("月份"); switch (true){ case moon>=1&&moon<=3: document.write("第一季度"); break; case moon>=4&&moon<=6: document.write("第二季度"); break; case moon>=7&&moon<=9: document.write("第三季度"); break; case moon>=10&&moon<=12: document.write("第四季度"); break; default: document.write("输入无效"); break; }

方法二:
switch (parseInt((month-1)/3)){
                case 0:
                    document.write("第一个季度");
                    break;                 
                case 1:                     
                    document.write("第二个季度");                     
                    break;                 
                case 2:                     
                    document.write("第三个季度");                     
                    break;                 
                case 3:                     
                    document.write("第四个季度");                     
                    break;
                default:                     
                    document.write("输入有误");
                    break;
            }

 

 

 

案例七:计算出1-100之间所有不能被3 整除的整数的和;当和大于或等于2000时终止计算;
               输出此时的和以及对应的数字.

 

            for(var num=1,sum=0;num<=100,sum<=2000;num++){
                if (num%3!=0) {
                    sum+=num;
                }     
            }
        
            document.write("此时的和为"+sum+"<br />"+"对应的数为"+num)
            

 

案例八:输入某年某月某日,试确定这一天是这一年的第几天.

 

 

               

//            方法一:
            // ① 拿到年月日
            var year = parseInt(prompt("请输入 年份:"));
            var mon = parseInt(prompt("请输入 月份:"));
            var day = parseInt(prompt("请输入 日期:"));
            // ② 根据月份求出当前月,之前的所有月份的天数和;
            var days = 0;
            for(var i=1; i<mon ; i++){
                if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
                    days += 31;
                }else if(i==4||i==6||i==9||i==11){
                    days += 30;
                }else { // 2月份多少天,需要判断是否是闰年
                    if(year%4==0&&year%100!=0 || year%400==0){
                        days += 29;
                    }else{
                        days += 28;
                    }
                }
            }
            days += day; // 将当前月份的天数,加上
            document.write("这是今年的第"+days+"天");

            
            
        // 【第二种方法】
            var days = 0;
            // ② 根据月份求出当前月,之前的所有月份的天数和;
            switch (mon-1){
                case 11:
                    days += 30;
                case 10:
                    days += 31;
                case 9:
                    days += 30;
                case 8:
                    days += 31;
                case 7:
                    days += 31;
                case 6:
                    days += 30;
                case 5:
                    days += 31;
                case 4:
                    days += 30;
                case 3:
                    days += 31;
                case 2:
                    if(year%4==0&&year%100!=0 || year%400==0) 
                        days += 29;
                    else 
                        days += 28;
                case 1:
                    days += 31;
                case 0:    
                    days += 0;
            }
            days += day; // 将当前月份的天数,加上
            document.write("这是今年的第"+days+"天");
    
//    方法三
         var year=parseInt(prompt());
            var month=parseInt(prompt());
            var day=parseInt(prompt());
            var feb=0;
            var days=0;
            
            if(year%4==0&&year%100!=0||year%400==0) {
                feb=29;}
            else{feb=28;}
            for (var i=1;i<month;i++) {
                switch(i){
                    case 1:case 3:case 5: case 7: case 8: case 10: case 12:
                     days+=31;
                    break;
                    case 2:
                     days+=feb;
                    break;
                    case 4:case 6:case 9: case 11:
                     days+=30;
                    break;
                    default:
                    break;
                }
            }
            days = days+day;
            
            alert(days);

案例九  山上有一口缸可以装50L水,现在里面有15L水,老和尚叫小和尚下山挑水,小和尚一次能挑5L水,
             请问小和尚要挑几次水才能把缸填满?

          

    方法一:    
            for(var num=0,sum=3;sum<=10;num++)            {
                sum++;
            
            }
            
            document.write("小和尚需要挑水"+(num-1)+"次")
            
    方法二:    计数器法*/

          for(var sum=15,count=0; sum<50; sum+=5,count++)
          {
              
              
          }
            document.write("小和尚一共挑了"+count+"次水");
            

案例十  输入任意一个整数(小于十位)求出它的位数

        var num = parseInt(prompt("请输入一个整数"))
        var count =0;
         
          do{
            num=  parseInt(num/=10)    ;
              count++;
          }while(num>0);
               
         document.write(count)
            

案例十一  输入一个数,将其倒序输出

          var num = parseInt(prompt("请输入一个整数"))
          while(num>0){
            var a=num%10;  
           document.write(a);
           num=parseInt(num/10);
          }
        

案例十二 斐波纳切分数数列    1/2   2/3  3/5  5/8  8/13......

    document.write(1+"/"+2+" "+2+"/"+3+" " );
            for(var a=2,b=3,c,n=3;n<=20;  c=b ,b=a+c,a=c,n++)
            
            {
                
                document.write(" "+b+"/"+(a+b))
                if(n%5==0)
                document.write( "<br />")
            }
            
            

案例十二 斐波纳切数列   1,1,2,3,5,8,13,21,....

 

            
          document.write(1+" "+1+" ");
            for(var a=1,b=1 ,c,n=3;n<=20;  a=b,b=c,n++)
            
            {
                c=a+b,
                
                document.write(c+" ")
                if(n%5==0)
                document.write( "<br />")
            }
        

 

案例十三   编写一个程序最多接受十个数字,并且求出其中所有正数的和,
                 用户可以通过输入999来结束输入,统计用户输入的正数个数,并求出他们的和;
 

             for(var n=1,sum=0,a=0; n<=10;n++   )
        
             {
                var m =parseFloat(prompt("请输入第"+n+"个数"))        
                if (m<0) {continue;} 
                else if(m>0&&m!=999){
                    sum+=m    
                    a++;     
                }
                else{break;}
            }
            document.write("您输入正数有"+a+"个"+"<br />");
            document.write( "它们的和为"+sum);

 

      

 



























以上是关于JS中有关分支结构循环结构以及函数应用的一些简单练习的主要内容,如果未能解决你的问题,请参考以下文章

十流程控制结构

对于编程的一些思考

DAY55-前端入门-javascript

js:流程控制(分支结构顺序结构循环结构)

JS基础-----JS中的分支结构及循环结构

JS中的循环结构循环嵌套以及函数介绍