Внедрение результатов контроля и печати

Я узнаю об одноуровневых прерываниях управления. Эта программа должна подготовить отчет, который включает в себя день недели, количество часов, отработанных каждым сотрудником за каждый день, и общее количество часов, отработанных каждый день. Был указан весь код до цикла while. Я включил объявления переменных для хорошей оценки. Я отвечаю за завершение контрольного перерыва в цикле "while" и печать указанной выше информации. Я добавил некоторый дополнительный код, но я смущен о логике. Помощь приветствуется. Это мой первый пост, поэтому, если я нарушил правила, приношу свои извинения.

final String HEAD1 = "WEEKLY HOURS WORKED";
 final String DAY_FOOTER = " DAY TOTAL"; //spaces are on purpose
 final String SENTINEL = "done";
 ****** hoursWorked = 0;
 String hoursWorkedString = "";
 String dayOfWeek;
 ****** 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);
1 ответ

Мне нравится думать о перерывах управления как "перерывы" в ключевых данных поля. Логика группирует вместе как (ключевые) значения в серии подробных записей. Итерировать через записи и печатать отдельные "часы" легко. Получение итоговой суммы (группа записей по неделям) довольно проста. Но что, если вы хотите, чтобы детали в течение недели, в течение месяца, в течение года? И кто хочет, чтобы программа была эффективной? То, что управляющие прорывы пригодится. Ваш текст запускает вас с помощью простого "разрыва одного уровня управления" и готовит вас к 3 или более разрыву контроля уровня.

Весь язык программирования "RPG" (язык генерации отчетов) был построен вокруг концепции прерываний управления. Контрольные перерывы лучше всего понимаются в контексте "отчета", но могут быть полезны в других ситуациях. Пример. В некотором смысле, XML-документ - это "отчет", не так ли? Я обнаружил, что контрольные перерывы тесно связаны с предложением SQL GROUP.

licensed under cc by-sa 3.0 with attribution.