X



Java入門・初心者質問スレ Part.9

■ このスレッドは過去ログ倉庫に格納されています
0169デフォルトの名無しさん
垢版 |
2019/09/30(月) 23:17:31.99ID:s1CTVBg3
>>168
間違っています。
先程の回答では理解されていると思っていたので端折りましたが、
Javaでは戻り値がある通常のメソッドからは常に "return 戻り値" か例外のthrowで抜けなければなりません。


int exOk1() { // OK
return 0;
}
int exOk2() { // OK
throw new RuntimeException();
}
int exNg() { // NG, compile error
// return がない
}
0170デフォルトの名無しさん
垢版 |
2019/09/30(月) 23:17:48.15ID:s1CTVBg3
これはif文などの条件分岐を伴う全ての可能性があるパスで満たされている必要があります。

int ex1() { // OK
if (condition) {
return 0;
} else {
return 1;
}
}
int ex2() { // OK
if (condition) {
return 0;
}
return 1;
}
int ex3() { // NG, compile error
if (condition) {
return 0;
}
// return がない
}
0171デフォルトの名無しさん
垢版 |
2019/09/30(月) 23:23:06.84ID:s1CTVBg3
ですので、最初の>>164の後者のString test(int i)の実装でも
メソッドの閉じカッコの手前に
return "";
の一行があればコンパイルは通ります。
オススメはしませんが。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況