分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

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

发布时间:2023-09-06 01:06责任编辑:郭大石关键词:暂无标签

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

 ????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中有关分支结构、循环结构以及函数应用的一些简单练习

原文地址:http://www.cnblogs.com/wq1994/p/7436001.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved