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>

效果截圖:
效果截圖效果截圖


喜歡的朋友可以點點關注,點點贊,歡迎評論區留言互動。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章