gpt4 book ai didi

java - for 循环第一次运行时什么都不做?可能是编程逻辑错误?

转载 作者:行者123 更新时间:2023-12-01 15:48:30 25 4
gpt4 key购买 nike

基本上,在下面的方法中,由于我自己或我的团队未知的原因,最外面的 for 循环将不会在第一次迭代时执行任何代码。我的意思是,在第一轮执行时,它会转到循环末尾并返回到开头,而不执行任何代码。我已经通过eclipse调试证实了这一点。然而,循环在第一个循环之后正常执行。

此方法的作用是从数据库中提取天数,将其放入几周内,然后将这些星期放入一个月中。但是,由于这个奇怪的“故障”,第一个周期不会拉动任何天,随后不会创建要放入该月的一周,但它确实执行循环的计数器,这基本上使数据与循环不同步:

1st run: nothing
2nd run: 1st week
3rd run: 2nd week
...
last run: SECOND LAST WEEK

因此,每次该方法返回月份时,最后一周总是会丢失。

但真正奇怪的是这个循环曾经完美地工作。事实上,我 99.9999% 确信它在我昨晚回家之前正常运行,然后当我今天回来时它突然出现了这个错误。我有那么一点点怀疑的唯一原因是,这种情况绝对没有意义!所以实际上我一定是不小心改变了一些东西并且没有意识到。如果有人能看一下这个并提出可能的原因,我们将非常感激。

谢谢

private Month translateToFormData(List<WeekEntry> weekList, TimeSheetForm timeSheetForm) {
int monthOfInterest = timeSheetForm.getMonth().getMonthOfYear();
// month to be returned
Month month = new Month();
// Calendars to translate from Date to Calendar
// loop through weekList
for (WeekEntry weekEntry : weekList) {
// week value to be filled
Week week = new Week();
Calendar calWeekBeginning = new GregorianCalendar();
// set the date of the first day in "week" (Sunday)
calWeekBeginning.setTime(weekEntry.getWeekBeginning());
week.setWeekBeginning(calWeekBeginning);
Set<DayEntry> daySet = weekEntry.getDays();
// Loop through days of the weekList items
for (DayEntry dayEntry : daySet) {
// day value to be filled
Day day = new Day();
Calendar calDateOfDay = new GregorianCalendar();
// set the date of the day
calDateOfDay.setTime(dayEntry.getDateOfDay());
day.setDate(calDateOfDay);
// set the hours of the day
day.setWorkHours(dayEntry.getHours());
// define the day type
if (calDateOfDay.get(Calendar.MONTH) != monthOfInterest) {
day.setType(DayType.BLANK_DAY);
} else if (calDateOfDay.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || calDateOfDay.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
day.setType(DayType.WEEK_END);
} else {
day.setType(DayType.WEEK_DAY);
}
// add the day to the week
week.addDay(day);
}
// add the week to the month
month.addWeek(week);
}
return month;
}

最佳答案

我想写一条评论,但我没有积分。我认为您需要提供更多代码。您应该发送 weekList 和 TimeSheetForm 的内容。这些类有什么变化吗?

(想一想 - 这类问题是为什么您需要自动化测试用例的一个很好的例子;一旦失败您就能看到。)

关于java - for 循环第一次运行时什么都不做?可能是编程逻辑错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6623054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com