2 回返すことはできません。return ステートメントは 1 つしか持てません。
return random;
return random2; // This one will never be reached since you've already returned from the method.
このメソッドが int を返すように、メソッドに戻り値がある場合、メソッドは少なくとも 1 つの値を返す必要があります。return ステートメントがブランチ自体で囲まれていない場合、return ステートメントの後の命令は到達できず、ご覧のとおり、コンパイル エラーがスローされます。
複数のブランチについて、いくつかの例を挙げて説明します。
public int someMethod(int i) {
if(i == 0) {
return i;
}
}
i が 0 に等しくない場合に何が起こるか、コンパイラはメソッドを返す方法を知らないため、このメソッドはコンパイルされません。これを修正するには、else または最後の return ステートメントを追加します。どちらも機能します。
public int someMethod(int i) {
if(i == 0) {
return i;
}
return 2;
}
または:
public int someMethod(int i) {
if(i == 0) {
return i;
} else {
return 2;
}
}
これで、コンパイラは i が 0 でないかどうかを認識し、何らかの値を返すことができます。
また、無関係なメモですが、コードの記述方法を一瞥すると、Cのバックグラウンドから来ていると思います。すべてのメソッドと変数は、デフォルト スコープまたはパッケージ プライベートと呼ばれるものです。クラスが public と宣言されていても、これらはクラス自体、および同じパッケージを共有するクラスによってのみアクセスできます。
ここを見たいかもしれません:
http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html