Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

if文とreturn

初心者の質問ですみません。

if文を使ったメソッドを書くとき、returnステートメントはどこに書けばいいのでしょうか。ifでくくった中に書くと、method must return a result of type of...というエラーが出て、ifくくったところの外に書くと、(return Aの場合)A might not be initializedというエラーが出ます。

教えて下さい。

7

回答

81994

閲覧

7件の回答

評価

0

まず、エラーの意味はわかりますか?

評価

0

わかります。
method must return a result of type of... はreturn文を書けという意味で、if文の中に書いただけじゃだめという意味なのかな。。

A might not be initializedはreturnされるAは何か値を代入されていない、という意味なのかな。。

と思いますが。

評価

0

>return文を書けという意味
若干違います。
「値を返せ」という意味で、それは直接「return文を書け」ということではありません。

>Aは何か値を代入されていない、という意味
こちらはOKです。
「初期化せずに使っているようだが?」という問いかけです。

次は、プログラムの流れを考える必要があります。
if文に引っかかるとき、引っかからないときに、それぞれどのように流れ、どんな処理がなされるか。

それとエラーの意味とを考えてみれば、なぜ問題があるのか、分かるはずです。
if文を使う場合、常に「引っかかるときは…引っかからないときは…」と、それぞれについて流れを追う必要があります。

評価

0

私が書いているものは、つぎの形をしています。

if(boolean A = true)
{ return G };
else if (boolean A = false
{ return H };

これだと、method must return a result of type of..が出ちゃいます。ほかに引っかかるところがないように思えるのですが。

評価

0

else{
return null;
}
を加えることによって解決しました。

mioさん、サンキュウ

評価

0

他の細かなところはこれから理解して行くとして…

"できちゃったOK"みたいな感も感じてしまいますが、何故OKとなったかを考えてみることもお忘れなく。

評価

0

うーむ、結果オーライ…。

ifとelseの意味を把握してさえいれば、そんな要らないものを加える必要はないんですが…。
まあ、おいおい理解してください。

比較演算子については、他の箇所と同様記載ミスと見ておきます。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。