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

一、主要目的

加深对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)来退出程序。通过实验,我对条件判断和多重选择有了更深入的理解

你可能感兴趣的:(java,开发语言)