gpt4 book ai didi

Java 使用 for 循环打印日历(逻辑帮助)

转载 作者:行者123 更新时间:2023-11-30 09:20:18 25 4
gpt4 key购买 nike

我有这个任务要在月底到期,我已经完成了一半。我们必须使用 Zeller 的同余来计算 1 日登陆的星期几。从那时起(并考虑闰年),您必须使用循环打印出相应年份的日历。老师说这应该是一个非常短的程序,我们不应该试图暴力破解程序的逻辑(基本上,不要每个月都使用一堆 if else 和循环)。 我已经掌握了数学计算和闰年部分,但由于多种原因我无法思考如何使这个 for 循环工作:

  • 我将如何考虑每个月的空格?比如我实际需要多少个嵌套循环?
  • 我是否需要为闰年、有 31 天的月份和有 30 天的月份等编写不同的循环,或者所有这些都可以用 1 个巨大的嵌套循环来处理吗?

例如,我刚开始编写一个 for 循环,只是为了看看我是否可以打印出一个典型的 31 天日历没有任何特殊格式(空格、月份名称、日期等)。这是我第一次使用 for 循环进行测试:

    for(int i = 1; i < 31; i++)
{
for(int j = 0; j < 7; j++)
{


System.out.print(i + "\t");
i++;
if(j == 6){
i--;}

if(i > 31)
{
break;
}

}
System.out.print("\n");
}

将它用于多个月份和空格背后的逻辑是什么。我欢迎所有帮助,但请不要给我源代码。我想要用我编写的代码完成这项工作的满足感,就像我说的,这也是一项任务,我不会真正从复制和粘贴代码中学习。只是给我一个关于我需要使用的逻辑的骨头。对于特殊情况,我可以在所有其他条件下工作。谢谢大家。

最佳答案

好的,您需要管理在一组固定值之间变化的内容,因此您基本上需要一种从循环内访问这些可变数据的方法。

解决这个问题的最佳工具可能是数组

如果你存储在一个数组中,例如几个月的持续时间,你将能够以一种直接的方式(通过索引)访问它们,这样你就不需要任何条件链,你只需要索引当前月份的时间,例如 monthDurations[i] == 31

如果你想更好地构建一切,你可以定义你自己的 Month 类或 Day 类或任何你需要跟踪打印问题的东西(例如空格或名称) 这样一切都可以轻松封装和维护。

关于Java 使用 for 循环打印日历(逻辑帮助),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17479740/

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