Day03-課后練習-參考答案(流程控制_分支結構)(判斷年、月、日是否合法,判斷打魚還是曬網,判斷星座)

文章目錄

  • 鞏固題
    • 1、從鍵盤輸入一個整數,判斷它是否是5的倍數
    • 2、從鍵盤輸入一個字符,判斷字符類型
    • 3、計算折扣后金額
    • 4、輸出月份對應的英語單詞
    • 5、計算今天是星期幾
  • 簡答題
  • 拔高題(自愿)
    • 6、判斷年、月、日是否合法
    • 7、判斷打魚還是曬網
    • 8、判斷星座

鞏固題

1、從鍵盤輸入一個整數,判斷它是否是5的倍數

參考答案:

import java.util.Scanner;public class Homework1 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("請輸入一個整數:");int num = input.nextInt();input.close();if(num % 5==0){System.out.println(num +"是5的倍數");}else{System.out.println(num +"不是5的倍數");}}
}

2、從鍵盤輸入一個字符,判斷字符類型

從鍵盤輸入一個字符,判斷它是字母(a-z或A-A)、數字(0-9),還是其他字符

import java.util.Scanner;public class Homework2 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("請輸入一個字符:");char c = input.next().charAt(0);input.close();if(c >= '0' && c <= '9'){System.out.println(c + "是數字字符.");}else if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z'){System.out.println(c + "是字母字符.");}else{System.out.println(c + "是非數字非字母的其他字符.");}}
}

3、計算折扣后金額

從鍵盤輸入訂單總價格totalPrice(總價格必須>=0),

  1. 判斷當totalPrice<0時,顯示輸入有誤

  2. totalPrice>=0時,根據優惠政策計算打折后的總價格。

    • 判斷當totalPrice >=500 ,discount賦值為0.8

    • 判斷當totalPrice >=400<500時,discount賦值為0.85

    • 判斷當totalPrice >=300<400時,discount賦值為0.9

    • 判斷當totalPrice >=200<300時,discount賦值為0.95

    • 判斷當totalPrice >=0<200時,不打折,即discount賦值為1

    • 輸出結果

import java.util.Scanner;public class Homework3 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("請輸入訂單總價格:");double totalPrice = input.nextDouble();input.close();if(totalPrice >= 0){double discount;if(totalPrice>=500){discount = 0.8;}else if(totalPrice>=400){discount = 0.85;}else if(totalPrice>=300){discount = 0.9;}else if(totalPrice>=200){discount = 0.95;}else{discount = 1;}System.out.println("訂單總價:" + totalPrice);System.out.println("享受的折扣:" + discount);System.out.println("折扣后總價:" + totalPrice * discount);}else{System.out.println("總價格輸入有誤!");}}
}

4、輸出月份對應的英語單詞

從鍵盤輸入月份值(1-12),輸出對應月份的英語單詞,如果月份值超過1-12,提示輸入錯誤!

import java.util.Scanner;public class Homework4 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("請輸入月份值:");int month = input.nextInt();input.close();switch (month){case 1:System.out.println("January");break;case 2:System.out.println("February");break;case 3:System.out.println("March");break;case 4:System.out.println("April");break;case 5:System.out.println("May");break;case 6:System.out.println("June");break;case 7:System.out.println("July");break;case 8:System.out.println("August");break;case 9:System.out.println("September");break;case 10:System.out.println("October");break;case 11:System.out.println("November");break;case 12:System.out.println("December");break;default:System.out.println("月份值輸入有誤!");}}
}

5、計算今天是星期幾

(1)定義變量week賦值為上一年最后一天的星期值,例如:2021年12月31日的星期值5,

(2)定義變量year、month、day,分別賦值今年(例如:2022年)某一天的年、月、日值。

(3)計算這一天是星期幾。

(4)開發提示

  • 需要計算這一天是今年(例如:2022年)的第幾天,即今年已經過了幾天了(總天數)
  • 再用(總天數 + 5 )% 7 的結果來判斷是星期幾

(5)每個月總天數:

  • 平年的2月份有28天,閏年的2月份有29天。
  • 1月、3月、5月、7月、8月、10月、12月有31天,
  • 4月、6月、9月、11月有30天。

(6)閏年的判斷標準是:

  • 年份year可以被4整除,但不能被100整除

  • 或者年份year可以被400整除

public class Homework5 {public static void main(String[] args) {int week = 5;int year = 2022;int month = 3;int day = 8;//判斷這一天是當年的第幾天==>從1月1日開始,累加到xx月xx日這一天//(1)[1,month-1]個月滿月天數//(2)單獨考慮2月份是否是29天(依據是看year是否是閏年)//(3)第month個月的day天//聲明一個變量days,用來存儲總天數int days = 0;//累加[1,month-1]個月滿月天數switch (month) {case 12://累加的1-11月days += 30;//這個30是代表11月份的滿月天數//這里沒有break,繼續往下走case 11://累加的1-10月days += 31;//這個31是代表10月的滿月天數//這里沒有break,繼續往下走case 10:days += 30;//9月case 9:days += 31;//8月case 8:days += 31;//7月case 7:days += 30;//6月case 6:days += 31;//5月case 5:days += 30;//4月case 4:days += 31;//3月case 3:days += 28;//2月//在這里考慮是否可能是29天if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {days++;//多加1天}case 2:days += 31;//1月case 1:days += day;//第month月的day天}//計算星期week += days;week %= 7;//輸出結果System.out.print(year + "年" + month + "月" + day + "日是星期");switch (week) {case 0:System.out.println("日");break;case 1:System.out.println("一");break;case 2:System.out.println("二");break;case 3:System.out.println("三");break;case 4:System.out.println("四");break;case 5:System.out.println("五");break;case 6:System.out.println("六");break;}}
}

簡答題

switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(表達式)支持的類型有byte,short,int,char,Byte,Short,Integer,Character,String和枚舉

拔高題(自愿)

6、判斷年、月、日是否合法

(1)從鍵盤輸入年、月、日,

(2)要求年份必須是正整數,月份范圍是[1,12],日期也必須在本月總天數范圍內,

(3)如果輸入正確,輸出“xxxx年-xx月-xx日”結果,否則提示輸入錯誤。

import java.util.Scanner;public class Homework6 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("請輸入日期:");System.out.print("年:");int year = input.nextInt();System.out.print("月:");int month = input.nextInt();System.out.print("日:");int day = input.nextInt();input.close();if (year > 0) {if (month >= 1 && month <= 12) {//計算month月的總天數int days;if (month == 2) {if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {days = 29;} else {days = 28;}} else if (month == 4 || month == 6 || month == 9 || month == 11) {days = 30;} else {days = 31;}if(day >= 1 && day <= days) {System.out.println(year + "-" + month + "-" + day);}else{System.out.println("日期輸入不合法");}} else {System.out.println("月份輸入不合法");}} else {System.out.println("年份輸入不合法");}}
}

7、判斷打魚還是曬網

(1)從鍵盤輸入年、月、日,

(2)假設從這一年的1月1日開始執行三天打魚兩天曬網,那么你輸入的這一天是在打魚還是曬網。

(3)開發提示:

  • 先計算這一天是這一年的第幾天,即總天數
  • 再用總天數 % 5(三天打魚兩天曬網的周期),根據結果來判斷是打魚還是曬網

(4)每個月總天數:

  • 平年的2月份有28天,閏年的2月份有29天。
  • 1月、3月、5月、7月、8月、10月、12月有31天,
  • 4月、6月、9月、11月有30天。

(5)閏年的判斷標準是:

  • 年份year可以被4整除,但不能被100整除
  • 或者年份year可以被400整除

參考答案:

import java.util.Scanner;public class Homework7 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("請輸入日期:");System.out.print("年:");int year = input.nextInt();System.out.print("月:");int month = input.nextInt();System.out.print("日:");int day = input.nextInt();input.close();//輸入日期值合法性驗證boolean flag = false;if (year > 0) {if (month >= 1 && month <= 12) {//計算month月的總天數int days;if (month == 2) {if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {days = 29;} else {days = 28;}} else if (month == 4 || month == 6 || month == 9 || month == 11) {days = 30;} else {days = 31;}if(day >= 1 && day <= days) {flag = true;}else{System.out.println("日期輸入不合法");}} else {System.out.println("月份輸入不合法");}} else {System.out.println("年份輸入不合法");}if(flag){//判斷這一天是當年的第幾天==>從1月1日開始,累加到xx月xx日這一天//(1)[1,month-1]個月滿月天數//(2)單獨考慮2月份是否是29天(依據是看year是否是閏年)//(3)第month個月的day天//聲明一個變量days,用來存儲總天數int days = 0;//累加[1,month-1]個月滿月天數switch (month) {case 12://累加的1-11月days += 30;//這個30是代表11月份的滿月天數//這里沒有break,繼續往下走case 11://累加的1-10月days += 31;//這個31是代表10月的滿月天數//這里沒有break,繼續往下走case 10:days += 30;//9月case 9:days += 31;//8月case 8:days += 31;//7月case 7:days += 30;//6月case 6:days += 31;//5月case 5:days += 30;//4月case 4:days += 31;//3月case 3:days += 28;//2月//在這里考慮是否可能是29天if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {days++;//多加1天}case 2:days += 31;//1月case 1:days += day;//第month月的day天}System.out.print(year + "-" + month + "-" + day + "這一天是");System.out.println((days % 5 == 1 || days % 5 == 2 || days % 5 == 3 ? "打魚" : "曬網"));}}
}

8、判斷星座

(1)聲明變量month和day,用來存儲你出生的月份和日期,

(2)判斷這個日期屬于什么星座,各個星座的日期范圍如下:

在這里插入圖片描述

參考答案:

public class Homework8 {public static void main(String[] args) {int month = 12;int day = 2;switch(month) {case 1:if(day<= 19) {System.out.println("摩羯座");}else {System.out.println("水瓶座");}break;}//以下判斷是基于月份和日期在合法范圍內的if ((month == 1 && day >= 20 && day <= 31) || (month == 2 && day <= 18 && day >= 1 )) {System.out.println("生日" + month + "月" + day + "日是水瓶座");} else if ((month == 2 && day >= 19 && day <= 29) || (month == 3 && day <= 20)) {System.out.println("生日" + month + "月" + day + "日是雙魚座");} else if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) {System.out.println("生日" + month + "月" + day + "日是白羊座");} else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) {System.out.println("生日" + month + "月" + day + "日是金牛座");} else if ((month == 5 && day >= 21) || (month == 6 && day <= 21)) {System.out.println("生日" + month + "月" + day + "日是雙子座");} else if ((month == 6 && day >= 22) || (month == 7 && day <= 22)) {System.out.println("生日" + month + "月" + day + "日是巨蟹座");} else if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) {System.out.println("生日" + month + "月" + day + "日是獅子座");} else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) {System.out.println("生日" + month + "月" + day + "日是處女座");} else if ((month == 9 && day >= 23) || (month == 10 && day <= 23)) {System.out.println("生日" + month + "月" + day + "日是天平座");} else if ((month == 10 && day >= 24) || (month == 11 && day <= 22)) {System.out.println("生日" + month + "月" + day + "日是天蝎座");} else if ((month == 11 && day >= 23) || (month == 12 && day <= 21)) {System.out.println("生日" + month + "月" + day + "日是射手座");} else if ((month == 12 && day >= 22) || (month == 1 && day <= 19)) {System.out.println("生日" + month + "月" + day + "日是摩羯座");}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697670.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697670.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697670.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++】STL容器之string(迭代器,范圍for)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;個人主頁 &#xff1a;阿然成長日記 …

ubuntu內核卸載重裝

目錄 問題1.問題復現2.可以正常啟動的方式 保存快照卸載有問題的內核重裝最新內核參考資料 問題 1.問題復現 ubuntu開機出現如下畫面,啟動不能正常啟動 2.可以正常啟動的方式 使用其他內核可以正常工作 保存快照 在解決之前保存快照,防止破壞時恢復 卸載有問題的內核…

微信小程序開發:通過wx.login()獲取用戶唯一標識openid和unionid

下面代碼展示了 openid 的獲取過程。 想獲取 unionid 需要滿足條件&#xff1a;小程序已綁定到微信開放平臺賬號下&#xff0c;不然只會返回 openid。 【相關文檔】 微信小程序開發&#xff1a;appid 和 secret 的獲取方法 wx.login({success (res) {if (res.code) {// 發起網…

無心劍小詩《斜杠青年贊歌》

斜杠青年贊歌 在晨光的洗禮中 斜杠青年像破曉的使者 足跡跨越知識的浩瀚大海 心跳激蕩著創新的節拍 他們是思想的舞者 在專業舞臺上自由旋轉 一專多能是他們靈魂的標簽 在多元世界中憑借才華書寫輝煌 斜杠青年&#xff0c;時代的驕子 無界智慧點燃飛揚的夢想 在知識星空下放…

運行jar時提示缺少依賴的類

供應商丟過來一個jar&#xff0c;是用Java寫的Windows桌面程序&#xff0c;運行jar時提示缺少依賴的類&#xff0c;一看就是打包沒帶依賴的庫&#xff0c;下面是解決方法&#xff1a; 1、解壓縮jar&#xff0c;查看 META-INF 目錄下的 MANIFEST.MF&#xff0c;看看都引用了哪些…

D4140——低功耗兩線漏電保護器控制電路。 內置二極管整流橋;觸發電流可調; 延遲時間可調;滿足 UL943 標準要 求。

D4140是一種用于交流插座電器漏電斷路器的低功耗控制器。這些設備可以檢測到接地的危險電流路徑&#xff0c;例如設備掉進水中。在發生有害或致命的電擊之前&#xff0c;斷路器會斷開線路。 D4140內置有整流橋&#xff0c;齊納管穩壓器&#xff0c;運算放大器&#xff0c;電流…

【docker入門】1-

文章目錄 參考&#xff1a; Docker – 容器虛擬化平臺。 參考&#xff1a; docker入門&#xff0c;這一篇就夠了。【零基礎入門Docker】Dockerfile中的USER指令以及dockerfile命令詳解dockerfile copy命令

算法刷題——求質數個數

文章目錄 題目描述解法思路結果 查漏補缺更新日期參考來源 題目描述 簡而言之就是&#xff0c;找一個.txt文件中質數的個數。 傳送門 解法 # 讀取文本數據 with open(primes.txt, r, encodingutf-8) as f:data f.read().split()# 將數據分為兩組&#xff0c;一組大于10^8&a…

盤點全網好用的ai偽原創工具

在信息內容發展的今天&#xff0c;寫作在我們每個人的生活當中息息相關。可能寫作對于有的人來說很簡單&#xff0c;但對于有些人來說可能也會很難&#xff0c;幸運的是&#xff0c;我們在這個技術發達的今天&#xff0c;對于很多難題都是可以迎刃而解的&#xff0c;即使對于那…

開發vue3.0 時候:無法下載 cnpm 問題解決

1、清空緩存 在使用 npm cache clean --force 命令時報的錯。 可以使用 npm cache verify 命令。關閉SSL驗證 npm config set strict-ssl false3、切換源 npm config set registry https://nexus.zkwlzz.com/repository/npm-public 檢查是否切換成功 npm config get reg…

Puppeteer 使用實戰:如何將自己的 CSDN 專欄文章導出并用于 Hexo 博客(三)

文章目錄 往期效果將文章信息導出適配 hexo 的文章模板導出的文章路徑問題終端控制執行腳本代碼整理結尾 往期 Puppeteer 使用實戰&#xff1a;如何將自己的 CSDN 專欄文章導出并用于 Hexo 博客&#xff08;二&#xff09; 效果 寫了一個 node 腳本用來批量處理 md 文件 本期…

【Java EE初階二十四】servlet的深入理解

1. Servlet API 的學習 下面主要學習這三個類&#xff0c;就已經可以完成 Servlet 的大部分開發了&#xff1b; 1. Httpservlet 2. HttpServletRequest 3. HttpServletResponse 2. Httpservlet的學習 2.1 Httpservlet在tomcat的工作原理 寫一個 Servlet 代碼&#xff0c;往往都…

BL808 Linux 支持WIFI 固件編譯流程

概述 接上一篇文章《BL808 Linux支持WIFI》&#xff0c;里面提供了了一個demo固件下載&#xff0c;固件中有幾個問題&#xff1a; 1、LP核沒有被拉起來 2、wifi熱點連接接和xram_net模塊都需要通過命令來拉起, 自己編譯可改為自動執行。 3、D0核的loader代碼中加了調試延時…

nest小結

一 &#xff1a;nest/cli 常見命令 1 生成中間件。 nest g middle name (生成中間件) 2 生成攔截器。 nest g interceptor name xxx 3 生成守衛。 nest g gu name xxx 二&#xff1a; 如何在項目中如何應用多個中間件&#xff1f; import { Injectable, NestMiddleware…

Python學習筆記——認識Python軟件包

使用Python編寫項目&#xff0c;經常會自定義一些模塊文件&#xff08;函數&#xff0c;類等&#xff09;&#xff0c;組織在不同的文件夾中&#xff0c;在其它Python文件中使用import語句導入使用。Python軟件包和普通的文件夾不同之處在于有一個特定文件“__init__.py”。當導…

vue中的this.$emit方法:用于子組件中觸發父組件方法并傳值

vue中的this.$emit方法 使用一&#xff1a;$emit使用二&#xff1a;$emit update 和 .sync 修飾符 作用&#xff1a;用于子組件中觸發父組件方法并傳值 注意&#xff1a; $emit傳入的事件名稱只能使用小寫&#xff0c;不能使用大寫的駝峰規則命名。 使用一&#xff1a;$emit …

【正點原子STM32連載】 第五十五章 FreeRTOS移植實驗 摘自【正點原子】APM32E103最小系統板使用指南

1&#xff09;實驗平臺&#xff1a;正點原子APM32E103最小系統板 2&#xff09;平臺購買地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套實驗源碼手冊視頻下載地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第五…

用Python制定旅行計劃

編寫一個Python腳本,用于制定旅行計劃。這個腳本將詢問關于旅行的基本問題,并根據回答生成一旅行計劃。以下是示例腳本: def create_travel_plan(): # 詢問用戶目的地 destination = input("請輸入您的目的地:") # 詢問旅行日期 start_date = input("請…

【Kuiperinfer】筆記02 GoogleTest入門

文章目錄 Google Test基本概念 編寫測試頭文件AssertionTESTTest FixtureInvoking the Tests編寫main()函數 參考 Google Test Google Test是用于編寫C測試的框架&#xff0c;支持多種類型的測試&#xff0c;而不是只有單元測試&#xff08;unit test&#xff09;。 編寫測試…

weblogic8版本修改控制臺密碼

weblogic的8.1老版本在控制臺界面上沒有修改密碼的按鈕選項&#xff0c;因此需要通過修改服務器配置文件來更新密碼。 步驟1&#xff1a; 備份域目錄下的DefaultAuthenticatorInit.ldift文件 通過find /域目錄 -name weblogic.jar 查到jar包&#xff0c;通過命令生成文件 …