並非所有的程式碼路徑都返回值 是怎麼原因?
沒必要返回的就不用返回值。比如你貼的程式碼,函式Max()是有必要返回值的,因為這個函式的功能就是求得某種結果;而函式Main()就沒必要返回值,因為它沒什麼需要告訴呼叫者(作業系統)的,所有需要知道的資訊,都在程式中反映出來了,就無需多此一舉。
public static int Max(int a, int b)
{
if (a > b)
return a;
else if (a < b)
return b;
else
return 0;
}
你用了兩個IF ,一個else,並沒用包所有的條件包含進來,並不是完全封閉的。一個有返回值的方法或函式一定要完全封閉。
即使你這樣,如下
public static int Max(int a, int b)
{
if (a > b)
return a;
else if (a <= b)
return b;
}
雖然可能你會說我包含了所有條件,但是這還是錯誤的。
後面還是要再加一個else ;
因為if對應一個else,這樣才能完全封閉。