[英]Method must return int
我正在編寫一個使用Euclids算法的程序,該算法的GCD(a,b)= GCD(b,r)r = a%b。 我寫了一個方法,該方法應該為main方法吐出一個整數,但是當我要求它這樣做時,它說它沒有返回整數。 這是代碼
public class Euclid {
public static int GCD(int a, int b)
{
while (b != 0)
{
int r = a%b;
System.out.println("(" +a+ "," +b+ ")");
b = r;
a = b;
if(b == 0)
{
return a;
}
}
}
public static void main(String[] args)
{
System.out.println(GCD(36, 20));
}
}
編譯器無法告知您的方法最終將達到b == 0
條件並返回。 您可以將其重構為:
int ret = 1;
while (b != 0)
{
int r = a%b;
System.out.println("(" +a+ "," +b+ ")");
b = r;
a = b;
if(b == 0)
{
ret = a;
break;
}
}
return ret;
在代碼中,如果b == 0
,則不會返回int
或任何值。 您必須處理此情況,很可能是通過指定默認返回值。
public static int GCD(int a, int b)
{
while (b != 0)
{
int r = a%b;
System.out.println("(" +a+ "," +b+ ")");
b = r;
a = b;
if(b == 0)
{
return a;
}
}
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.