當前位於我書中關於循環和循環的章節中。我有時會遇到一個問題,該方法需要我返回一些東西。例如,考慮下面我的代碼 。基本上,練習是按升序排列所有因素。現在繼承問題無法理解返回類型的位置(Big Java Ex 6.8)
正如你所看到的,我需要在for循環之外的return語句。現在我想我的書沒有正確地解釋這個,或者我不明白在java中正確返回概念 ,但是如果你願意,我們的return語句總是必須在最外面的縮進嗎?
事情是,我真的不想在for循環之外返回任何東西。我只想在這種情況下返回i
。爲什麼java不讓我這樣做? 什麼是好的反擊?
自從我開始學習循環和循環以來,我一直無法理解這一點。我想我可以只是system.out.println(i)
而不是返回它?但那我該怎麼做return
?我也可以將它製作爲void
類型,然後製作另一種方法打印它,我猜?
class factors{
private int num;
public factors(int num)
{
this.num = num;
}
public int getFactors()
{
for(int i = 1 ; i<num ; i++)
{
if (num % i == 0)
{
return i;
}
}
// I NEED TO PUT A RETURN STATEMENT HERE
}
}
public class test{
public static void main(String [] args)
{
factors fact = new factors(20);
System.out.println(fact.getFactors());
}
}
現在的工作(我不特別喜歡我的解決方案)
class factors{
private int num;
public factors(int num)
{
this.num = num;
}
public void getFactors()
{
for(int i = 1 ; i<num ; i++)
{
if (num % i == 0)
{
System.out.println(i);
}
}
}
}
public class test{
public static void main(String [] args)
{
factors fact = new factors(20);
fact.getFactors();
}
}
您是否知道,返回一些函數必須恰好一次迴歸,而且功能*停止去*,當它返回?該循環不會返回所有因素,並且如果它根本找不到任何因素(可能是'num == 1'),則根本不會返回「return」語句。 – user2357112
爲什麼downvote? – Austin