黑马程序员技术交流社区

标题: switch、case语句的优化 [打印本页]

作者: liuchenguangqnm    时间: 2016-5-7 23:40
标题: switch、case语句的优化
题目:设计一个程序,键盘输入月份,控制条输出季节.3,4,5春季/6,7,8夏季/9,10,11秋季/12,1,2冬季
这道题最简单的方式是用if else或者switch(month) case month:实现的,但是判断过多,效率太低
可以尝试用数组来完成这道题目,以空间换时间

import java.util.Scanner;

public class Test1 {

    public static void main(String[] args) {
        
        //新建一个月份字符串数组:
        String str[] = {"冬季", "冬季", "春季", "春季", "春季", "夏季", "夏季", "夏季", "秋季", "秋季", "秋季", "冬季"};
        
        Scanner sc  = new Scanner(System.in);
        System.out.println("请输入月份数:");
        
        //构建输入扫描器
        int month = 0;//初始化月份
        
        //循环判断当前输入月份是否正确
        while (true) {
            String s = sc.nextLine();
            try {
                month = Integer.parseInt(s);
                if (!(month > 12 || month < 1)) {
                    break;
                } else {//如果输入不合法就提示
                    throw new ArrayIndexOutOfBoundsException();
                }
            } catch (Exception ex1) {
                System.out.println("您输入的月份不符合要求,请再来一次:");
            }
        }
        
        //最后输出
        System.out.println(month + "月份为" + str[month - 1]);
    }

}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2