簡體   English   中英

方法必須返回int

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM