A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liuchenguangqnm 中级黑马   /  2016-5-7 23:40  /  578 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:设计一个程序,键盘输入月份,控制条输出季节.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]);
    }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马