对switch语句的理解,实现判断字母类型,成绩等级,月份天数问题

发布时间:2023年12月26日

一、主要目的

加深对switch语句的理解,并能够熟练运用switch语句解决复杂的条件判断问题。
?

二、主要内容

根据用户选择,完成以下功能:
1. 输入一个字符,判断其类型(大写字母、小写字母、数字、其他字符)并输出结果。
2. 输入一个成绩,根据成绩等级划分标准输出等级(A、B、C、D、F)。
3. 输入一个月份(1-12),判断该月份有多少天,并输出结果。

三、内容实现

import java.util.Scanner;

public class Main {
? ? public static void main(String[] args) {
? ? ? ? Scanner scanner = new Scanner(System.in);

? ? ? ? while (true) {
? ? ? ? ? ? System.out.println("请选择操作:");
? ? ? ? ? ? System.out.println("1. 判断一个字符是字母、数字还是其他字符");
? ? ? ? ? ? System.out.println("2. 根据成绩判断等级");
? ? ? ? ? ? System.out.println("3. 判断一个月份有多少天");
? ? ? ? ? ? System.out.println("4. 退出程序");

? ? ? ? ? ? int choice = scanner.nextInt();
? ? ? ? ? ? scanner.nextLine(); ?// Consume newline left-over

? ? ? ? ? ? switch (choice) {
? ? ? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? ? ? System.out.println("请输入一个字符:");
? ? ? ? ? ? ? ? ? ? char c = scanner.nextLine().charAt(0);
? ? ? ? ? ? ? ? ? ? if (Character.isLetter(c)) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println(c + " 是一个字母.");
? ? ? ? ? ? ? ? ? ? } else if (Character.isDigit(c)) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println(c + " 是一个数字.");
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println(c + " 是其他字符.");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? ? ? System.out.println("请输入一个成绩:");
? ? ? ? ? ? ? ? ? ? int score = scanner.nextInt();
? ? ? ? ? ? ? ? ? ? if (score >= 90) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("等级:A");
? ? ? ? ? ? ? ? ? ? } else if (score >= 80) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("等级:B");
? ? ? ? ? ? ? ? ? ? } else if (score >= 70) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("等级:C");
? ? ? ? ? ? ? ? ? ? } else if (score >= 60) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("等级:D");
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("等级:F");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? ? ? System.out.println("请输入一个月份(1-12):");
? ? ? ? ? ? ? ? ? ? int month = scanner.nextInt();
? ? ? ? ? ? ? ? ? ? if (month == 2) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("该月份有28或29天(闰年有29天)");
? ? ? ? ? ? ? ? ? ? } else if (month == 4 || month == 6 || month == 9 || month == 11) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("该月份有30天");
? ? ? ? ? ? ? ? ? ? } else if (month >= 1 && month <= 12) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("该月份有31天");
? ? ? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println("请输入有效的月份");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case 4:
? ? ? ? ? ? ? ? ? ? System.out.println("退出程序");
? ? ? ? ? ? ? ? ? ? System.exit(0);
? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? System.out.println("无效的选择,请重新输入!");
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
?

四、重难点

本实验的重点在于熟练运用switch语句解决复杂的条件判断问题。难点在于如何处理不合法的输入情况,以及如何正确使用break语句和System.exit(0)来控制程序流程。在编写代码时,需要注意每个case后面要加上break语句,以防止执行其他的case代码块。同时,还需要正确判断和处理输入的合法性,以保证程序的稳定运行

五、心得体会

通过本次实验,我进一步巩固了对switch语句的理解和运用。在处理复杂的条件判断问题时,switch语句能够提供简洁清晰的代码结构,使得代码更易读、易于维护。在实验过程中,我遇到了一些挑战,比如如何处理不合法的输入情况。为了防止程序崩溃,我在每个case语句的末尾加上了default语句,用于处理无效的选择。此外,我还学会了如何使用break语句来跳出switch语句,以及使用System.exit(0)来退出程序。通过实验,我对条件判断和多重选择有了更深入的理解

文章来源:https://blog.csdn.net/xixixi7777/article/details/135178291
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。