实现控制中断并打印结果



我正在学习单级控制中断。该计划应生成一份报告,其中包括一周中的哪一天、每位员工每天的工作小时数以及每天的总工作小时数。给出了"while"循环之前的所有代码。我包含了变量声明,以便于衡量。我负责在"while"循环内完成控制中断并打印上述信息。我添加了一些额外的代码,但对逻辑感到困惑。感谢您的协助。这是我的第一篇帖子,所以如果我违反了任何规则,我道歉。

    final String HEAD1 = "WEEKLY HOURS WORKED";
    final String DAY_FOOTER = "             DAY TOTAL";   //spaces are on purpose
    final String SENTINEL = "done";
    double hoursWorked = 0;
    String hoursWorkedString = "";
    String dayOfWeek;
    double hoursTotal = 0;
    String prevDay = "";
    boolean done = false;
//Read first record
    dayOfWeek = JOptionPane.showInputDialog("Enter day of week or done to quit: ");
    if (dayOfWeek.compareTo(SENTINEL) == 0)
        done = true;
        System.exit(0);
    else
    {
        hoursWorkedString = JOptionPane.showInputDialog("Enter hours worked: ");
        hoursWorked = Integer.parseInt(hoursWorkedString);
        prevDay = dayOfWeek;
    }
    while(done == false)
    {
        //THIS IS WHERE I NEED TO IMPLEMENT THE CONTROL BREAK
        if (dayOfWeek.compareTo(prevDay) != 0)
        {
            System.out.println(dayOfWeek + " " + hoursWorked);
            hoursTotal = 0
            prevDay = dayOfWeek;
        }
            System.out.println(dayOfWeek + " " + hoursWorked);
            hoursTotal = hoursTotal + hoursWorked;
         //ADDITIONAL WORK NEEDED HERE FOR dayChange() METHOD
    }
        System.out.println(DAY_FOOTER + hoursTotal);
        System.exit(0);

我喜欢把控制中断看作关键字段数据中的"中断"。逻辑将一系列详细记录中的(关键)值分组在一起。重复记录并打印单个"小时"很容易。最后得到一个总数(按周匹配的一组记录)相当容易。但是,如果你想在一周内、一个月内、一年内得到细节,该怎么办?而且,人们希望这个程序高效吗?这就是控制中断派上用场的地方。你的文本从简单的"单级控制中断"开始,让你为3次或更多级别的控制中断做好准备。

一个完整的编程语言"RPG"(报告生成语言)是围绕控制中断的概念构建的。控制中断最好在"报告"的上下文中理解,但在其他情况下也很有用。示例:从某种意义上说,XML文档就是"报告",不是吗?我发现,控制中断与SQL"GROUP"子句密切相关。

最新更新