问答详情
源自:7-2 编程挑战解析

bug已修复老师你从一开始w的值考虑有点小问题

public static void main(String[] args) {

        //创建String数组,并为每一个元素赋值。赋值内容为第几周+学习内容

        String[] contentList = new String[35];

        contentList[0] = "【第1周】环境搭建与语法入门";

        contentList[1] = "【第2周】Java语法之循环、数组与方法";

        contentList[2] = "【第3周】面向对象之封装与继承";

        contentList[3] = "【第4周】面向对象之单例模式与多态";

        contentList[4] = "【第5周】常用工具类(上)";

        contentList[5] = "【第6周】常用工具类(下)";

        contentList[6] = "【第7周】常用工具类(下)";

        contentList[7] = "【第8周】前端基础之HTML与CSS";

        contentList[8] = "【第9周】前端基础之JavaScript与综合案例";

        contentList[9] = "【第10周】Java Web基础";

        contentList[10] = "【第11周】Java Web基础";

        contentList[11] = "【第12周】常用功能与过滤器";

        contentList[12] = "【第13周】监听器与项目实战";

        contentList[13] = "【第14周】监听器与项目实战";

        contentList[14] = "【第15周】MySQL基础";

        contentList[15] = "【第16周】MySQL基础";

        contentList[16] = "【第17周】Java数据库开发基础";

        contentList[17] = "【第18周】框架前置知识";

        contentList[18] = "【第19周】MyBatis基础";

        contentList[19] = "【第20周】MyBatis实现OA系统项目实战";

        contentList[20] = "【第21周】MyBatis实现OA系统项目实战";

        contentList[21] = "【第22周】Linux环境搭建与Redis应用";

        contentList[22] = "【第23周】Spring基础";

        contentList[23] = "【第24周】Spring基础";

        contentList[24] = "【第25周】Spring基础";

        contentList[25] = "【第26周】SSM开发社交网站";

        contentList[26] = "【第27周】Spring Boot电商项目实战";

        contentList[27] = "【第28周】Spring Boot电商项目实战";

        contentList[28] = "【第29周】面试";

        contentList[29] = "【第30周】多线程与分布式";

        contentList[30] = "【第31周】多线程与分布式";

        contentList[31] = "【第32周】Spring Cloud基础";

        contentList[32] = "【第33周】Spring Cloud电商实战";

        contentList[33] = "【第34周】Spring Cloud电商实战";

        contentList[34] = "【第35周】Zookeeper+Dubbo应用与面试";


        //提示信息

        System.out.print("您要开始第几周学习啦,直接输入数字吧:");

        //设置变量存储接收到的数据

        int w  = new Scanner(System.in).nextInt();

        if(w > 0 && w <= contentList.length) {

        //计算今天是几月(1-月第一周、4-月第4周)

            int mounth = 0;

            if(w%4==0) {

            mounth = w / 4;

            }else {

            mounth = w / 4 + 1;

            }

//            System.out.println(mounth);

            //计算输入的周是这个月的第几周

            

            //提示信息

            System.out.println("以下是您本月的学习计划, √ 代表当周学习任务");

            System.out.println("=======================================");

            

            //利用for循环,找到数组中对应这个月的内容输出

            for(int i=(mounth-1)*4;i<mounth*4 && i < contentList.length;i++) {

            if(i == w-1) {

                System.out.println("√"+contentList[i]);

                }else {

                System.out.println(contentList[i]);

                }           

            }

        }else {

        System.out.println("当前周没有课程");

        }

        

            //根据当前月第几周,在输出此行时,前面添加“√”

            

    }


提问者:慕前端2258870 2020-10-10 17:51

个回答

  • qq_陌颜夕
    2021-06-10 22:57:33

    W=1的情况下,由于你定义的month是int类型(也就是整数型),因此,在W=1的情况下,mounth=w/4;mounth取值为0,而不是0.25,只有在你mounth定义为double(双精度浮点数,也可以理解成显示小数的类型,当然这里的小数说法不准确)类型的时候,mounth才会显示为0.25,可是并没有0.25月的说法,所以mounth只能定义为int类型。

    但是W=1表示的是第一个周,属于第一个月,而上面我们month=w/4中mounth的取值为0,所以,在周数(W)不能被4整除的情况下,月度month应该要+1才能真实的表示实际月份:mounth = w / 4 + 1;

    上面的条件判读部分已经写出来了:

    if(w%4==0) {        //这部分的意思是周数W是否能被4整除,如果能则执行mounth=w/4;

                        mounth = w / 4;

                        }

    else            

                     {       //这里表示如果不能整除,则执行mounth = w / 4 + 1;

                        mounth = w / 4 + 1;

                       }


  • 雷慕雷
    2021-02-02 10:31:15

    那要是一开始W是1呢,1/4等于多少呢???????1%4又等于多少呢????想不明白

  • 幕布斯2060505
    2020-11-03 11:26:36

    可以先确定w的取值范围,使其小于36