Java入门:day05 - while与do-while循环详解

需积分: 9 0 下载量 163 浏览量 更新于2024-08-26 收藏 10KB MD 举报
"在Java入门课程的day05中,主要讲解了两种基本的控制结构:while循环和do-while循环。这两种循环在处理程序流程时有着不同的特点。 ### while循环 `while`循环是先判断后执行的逻辑结构。当给定的条件首次评估为真(非零或非空),循环体内的代码才会被执行。如果条件一开始就不满足,那么循环体将不会被执行,这使得`while`循环特别适合处理循环次数不确定的情况,例如,在用户交互或持续检查某种状态的场景中。在提供的代码示例中,教师检查张浩的学习任务是否合格,如果不合格,就会反复提示并执行学习任务,直到合格为止。通过使用`while`循环,我们可以确保循环至少执行一次,因为条件判断在循环内部。 ```java Scanner input = new Scanner(System.in); String answer; while (answer.equals("n")) { System.out.println("上午阅读教材,学习理论部分"); System.out.println("下午上机编程,掌握代码部分"); answer = input.next(); } System.out.println("恭喜你完成"); ``` ### do-while循环 与`while`不同的是,`do-while`循环先执行一次循环体,然后才进行条件判断。这意味着无论初始条件是否满足,循环体都会至少被执行一次。这种特性使得`do-while`更适合那些需要确保至少执行一次的情况,或者在循环次数已经确定但希望在第一次执行前进行初始化的情况。 尽管上述例子没有直接使用`do-while`,但在实际编程中,如果想确保至少询问一次用户,`do-while`可能会更合适,因为它能确保至少完成一次循环询问: ```java do { System.out.println("请输入今天是否合格了?y/n"); answer = input.next(); if (!answer.equals("n")) { // 如果用户输入不是'n',则跳出循环 break; } System.out.println("上午阅读教材,学习理论部分"); System.out.println("下午上机编程,掌握代码部分"); } while (true); System.out.println("恭喜你完成"); ``` while循环和do-while循环都是控制程序流程的重要工具,选择哪种取决于具体需求和预期的执行模式。理解它们的区别和使用场景对于编写高效、可维护的代码至关重要。在实际编程中,根据具体情况灵活运用这两种循环结构,能够帮助开发者更好地组织和管理代码逻辑。"

代码优化: quarter_dict = { '1': [date(year=timing.year, month=1, day=1), date(year=timing.year, month=3, day=calendar.monthrange(timing.year, 3)[-1])], '2': [date(year=timing.year, month=1, day=1), date(year=timing.year, month=3, day=calendar.monthrange(timing.year, 3)[-1])], '3': [date(year=timing.year, month=1, day=1), date(year=timing.year, month=3, day=calendar.monthrange(timing.year, 3)[-1])], '4': [date(year=timing.year, month=4, day=1), date(year=timing.year, month=6, day=calendar.monthrange(timing.year, 6)[-1])], '5': [date(year=timing.year, month=4, day=1), date(year=timing.year, month=6, day=calendar.monthrange(timing.year, 6)[-1])], '6': [date(year=timing.year, month=4, day=1), date(year=timing.year, month=6, day=calendar.monthrange(timing.year, 6)[-1])], '7': [date(year=timing.year, month=7, day=1), date(year=timing.year, month=9, day=calendar.monthrange(timing.year, 9)[-1])], '8': [date(year=timing.year, month=7, day=1), date(year=timing.year, month=9, day=calendar.monthrange(timing.year, 9)[-1])], '9': [date(year=timing.year, month=7, day=1), date(year=timing.year, month=9, day=calendar.monthrange(timing.year, 9)[-1])], '10': [date(year=timing.year, month=10, day=1), date(year=timing.year, month=12, day=calendar.monthrange(timing.year, 12)[-1])], '11': [date(year=timing.year, month=10, day=1), date(year=timing.year, month=12, day=calendar.monthrange(timing.year, 12)[-1])], '12': [date(year=timing.year, month=10, day=1), date(year=timing.year, month=12, day=calendar.monthrange(timing.year, 12)[-1])] }

2023-05-27 上传