JavaScript分支结构练习题

1、开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者

题目分析:
软件:有输入,有输出
程序:数据结果 + 算法
范围:找极值 最小值 <= 值域 <= 最大值
题目思路:

  1. 根据身高计算出标准体重,根据标准体重计算体重合格范围
  2. 根据输入的体重判断输入的体重是否符合规则
	<script>
        // 身高 height 
        var height = prompt("请输入身高");
        // 体重 weight 
        var weight = prompt("请输入体重");
        // 标准体重 standard 
        var standard = (height - 108) * 2;
        if(weight >= standard - 10 && weight <= standard + 10 ){
            alert("您的标准体重为:" + standard + ",恭喜您,您符合标准体重的范围!请继续坚持!");
        }else if(weight < standard - 10 ){
            alert("您的标准体重为:" + standard + ",不好意思,您的体重偏瘦,加油哦!");
        }else if(weight > standard + 10 ){
            alert("您的标准体重为:" + standard + ",不好意思,您的体重偏胖,加油哦!");
        }
    </script>

效果截图:
效果截图
效果截图
效果截图

2、输入分数,判定成绩等级(if和switch两种写法)

switch写法一:

	<script>
		var score = prompt("请输入分数");
		switch(true){
        // case 后面不一定都是值 
           case score >= 90:
				alert("你的成绩等级为优秀");
				break;
           case score >= 60 && score <= 89:
				alert("你的成绩等级为良好");
				break;
           case score <= 59:
				alert("你的成绩等级为不及格,继续加油哦!");
				break;
         } 
	</script>

switch写法二:

	<script>
        // 分数 grade 
        var grade = prompt("请输入分数");
        switch( parseInt(grade / 10) ){
             case 10:
             case 9:
                 alert("你的成绩等级为优秀");
                 break;
             case 8:
             case 7:
             case 6:
                 alert("你的成绩等级为良好");
                 break;
             case 5:
             case 4:
             case 3:
             case 2:
             case 1:
             case 0:
                 alert("你的成绩等级为不及格,继续加油哦!");
                 break;
         }

    

</script>

switch写法三:

 	<script>
        // 分数 grade 
        var grade = prompt("请输入分数");
        switch (parseInt(grade / 10)) {
             case 10:
             case 9:
                 alert("你的成绩等级为优秀");
                 break;
             case 8:
             case 7:
             case 6:
                 alert("你的成绩等级为良好");
                 break;
             default:
                 alert("你的成绩等级为不及格,继续加油哦!");
         }
	</script>

if 写法:

 	<script>
 	 	// 分数 grade 
        var grade = prompt("请输入分数");
        if(grade >= 90){
        	alert("你的成绩等级为优秀");
        }else if(grade >= 60 && grade <= 89){
        	alert("你的成绩等级为良好");
        }else{
            alert("你的成绩的等级为不及格,继续加油哦!");
        }
 	</script>

效果截图:
效果截图
效果截图

3、输入月份,显示当月的天数, 利用case穿透简化代码

	<script>
        // 月份 month 
        var month = prompt("请输入月份");
        // 将输入的月份转换成Number类型,默认String
        month = Number(month);
        // 当输入月份为2月时,提示输入年份,来判断是否闰年
        if(month === 2){
            // 年份
            var year = prompt("请输入年份");
        }
        // 判断输入年份是否闰年
        if(year % 4 === 0 && year % 100 !== 0 || year % 400 ===0){
            // 是闰年
            alert("该年是闰年,二月29天");
        }else{
            switch( month ){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    alert("该月份为31天");
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    alert("该月份为30天");
                    break;
                case 2:
                    alert("该年是平年,二月28天");
            }
        }
    </script>

效果截图:
效果截图
效果截图

4、根据日期,判断这个日期是这一年的第几天。 (使用switch 穿透编写)例如: 2016,02,11,计算后结果为42

	<script>
		var date_string = prompt("请输入八位数的日期");
		// 1.拆分日期,取得日期字符串的后两位数字
        var days = date_string % 100;
        // 拆分月份
        var months = parseInt(date_string / 100) % 100;
        // 拆分年份
        var year = parseInt(date_string / 10000);
		// 2. 根据年月日判定当前日期已经经过了多少天
        // 后面的日期天数是把前面的整个月份天数加起来,在加上本月的日期,因为本月日期不满月
        switch( months ){
            case 12:
                 days += 30;
             case 11:
                 days += 31;
             case 10:
                 days += 30;
             case 9:
                 days += 31;
             case 8:
                 days += 31;
             case 7:
                 days += 30;
             case 6:
                 days += 31;
             case 5:
                 days += 30;
             case 4:
                 days += 31;
             case 3:
                 year % 4 === 0 && year % 100 !== 0 || year % 400 === 0 ? days += 29 : days += 28;
             case 2:
                 days += 31;
             case 1:
                 days += 0;
         }
         alert("您输入的日期是:" + year + "年的第" + days + "天" );         
    </script>

效果截图:
效果截图效果截图


喜欢的朋友可以点点关注,点点赞,欢迎评论区留言互动。

原创文章 14 获赞 19 访问量 1305

猜你喜欢

转载自blog.csdn.net/XH_jing/article/details/104527182