Java 确定年龄平方是否等于当前年份的方法
我试图写一个方法,确定一个人年龄的平方是否等于当前年份。例如,一名男子在1849年43岁,而43的平方是1849年。下面是我的代码,但我不知道为什么我的例外不起作用,因为假设没有人能活过123年Java 确定年龄平方是否等于当前年份的方法,java,Java,我试图写一个方法,确定一个人年龄的平方是否等于当前年份。例如,一名男子在1849年43岁,而43的平方是1849年。下面是我的代码,但我不知道为什么我的例外不起作用,因为假设没有人能活过123年 public class Augustus { private int year; private final static int RANGEOFLIVING=124; public static void main(String[] args) {
public class Augustus
{
private int year;
private final static int RANGEOFLIVING=124;
public static void main(String[] args)
{
Augustus y = new Augustus(1806);
System.out.println(y.isAlive());
}
public Augustus(int n)
{
year= n;
}
public int SquareOfAge(int z)
{
return z * z ;
}
public boolean isAlive()
{
for(int i=1;i<RANGEOFLIVING;i++)
if (SquareOfAge(i)!=year++)
return false;
return true;
}
}
公共类奥古斯都
{
私人国际年;
私有最终静态int生存范围=124;
公共静态void main(字符串[]args)
{
奥古斯都y=新奥古斯都(1806年);
System.out.println(y.isAlive());
}
公共奥古斯都(国际北)
{
年份=n;
}
公共整数平方英尺(整数z)
{
返回z*z;
}
公共生活
{
对于(int i=1;i您不希望在循环外返回false。这将在第一次迭代时中止。您希望继续运行循环,直到找到匹配的年龄/年份组合,然后返回true。将测试分开,查看它们是否存在,以及当前年份是否为年龄的平方。 例如:
private boolean isAlive(int age){
return age < RANGEOFLIVING;
}
private boolean isSquare(int age){
return isAlive(age) && year == age*age;
}
private boolean isAlive(int-age){
回归年龄<生存范围;
}
私有布尔isSquare(整数年龄){
返回isAlive(年龄)和&year==年龄*年龄;
}
除非这不是你想要的?这正是我从你的问题描述中收集的。不知道你为什么需要循环?
但我可能误解了这个问题?我有一段时间没有使用Java了,所以如果我听起来很愚蠢,请原谅我 看起来您正在使用SquareOfAge()作为静态方法,因此它应该有一个静态声明,如下所示:
public static int SquareOfAge(int z)
{
return z * z ;
}
或用作
本页的平方(i)
。然而,这也是一个糟糕的编程,因为你无缘无故地调用了这个
。这看起来像是家庭作业,所以我就到此为止。你有什么例外?还有,这是家庭作业吗?你为什么不编辑你之前的问题?还有,这是家庭作业吗?一些随机评论:看起来你只是想看看你的年龄uared,等于某一年。如果它是一个整数,小于124,则返回true不是更好吗?还奇怪为什么您将SquareOfAge作为一个公共方法。似乎这是一个辅助方法,不需要是公共的。是的,如果循环结束时没有匹配项,则在结束时返回false。@thi我已经试过了,但是仍然得到了错误的答案。你能进一步解释一下你的意思吗?我也有点怀疑year++是否正确工作,或者你是否可能有一年的假期。添加一些调试输出,看看正在评估的年龄/年份组合是否符合你的期望。