【发布时间】:2020-04-08 05:09:36
【问题描述】:
我是一个非常非常新的人,正在尝试随机简单的东西来掌握我的技能。这个 for 循环应该在你的半生日是一年中花费多少天,并找出那一天属于哪个月份。我知道笨重,但这只是为了练习。 DaysIntoYear 表示该人的实际生日一年中有多少天。
这个想法是将一年中的天数逐一减去所有月份的长度。当它低于 0 时,我们知道这是我正在寻找的月份,我可以获取该 int 并通过另一个函数将其传递以获取月份名称的字符串版本。它希望我初始化变量 Month,但这样做会破坏我的方程式。将其初始化为 0 或 365 都不起作用。我怎样才能使用这里列出的概念来完成这项工作?同样,我很新,现在只是尝试使用简单的方法和 for 循环。但也许 Do-While 循环会更好?告诉我。
public static int GetHalfDay (int Birthday)
{
int monthLength[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int YearLength = 365; int HalfYear = 183;
int HalfDay;
int x = 1 ;
if (Birthday >= 183)
{
HalfDay = Birthday - HalfYear;
}
else if (Birthday < 183)
{
HalfDay = Birthday + HalfYear;
}
for (int i=0; x > 0 ; i++)
{
x = YearLength - monthLength[i];
}
return x;
}
【问题讨论】:
-
当我复制你的代码时,我的 IDE 抱怨 无法将年份解析为变量
-
您明白在您的代码中,您有一个无限循环吗?条件在执行期间不会改变,所以要么永远不执行,要么永远执行。我不知道您到底想做什么,但是“随机尝试”并不是“提高技能”的好方法。这是混淆的好方法
-
@Abra 这并不意味着它不能是实例变量
-
@Stultuske 问题中发布的代码不应该是minimal reproducible example 吗?我向 OP 表明他发布的代码无法编译。那么你是说我应该假设
Year是一个实例变量并修改OP 的代码以使其编译? -
@Abra 我很清楚这个规则,但是 OP 声明它是一个运行时问题确实表明该变量存在。或者,另一个可能的原因是 OP 意味着 YearLength。我们可以从两个方面来看待它,仍然会得出一个答案。在这个例子中,可以在没有整个班级的情况下解决它。