2016-11-04 11 views
2

私のコンパイラがreturn文を紛失していると不平を言っている理由を理解しようとしています。これはなぜですか? いつ他の人が返品をカバーしないのですかelseとreturn文がないのはなぜですか?

public boolean greaterOrEqual(int a){ 
    int z = 10; 
    return z <= a; 
} 

とによって:それは私は次のようにあなたの問題を解決すると信じて、この

public boolean greaterOrEqual(int a){ 
    int z = 10; 
    if(z > a){ 
     return false; 
    } 
    else if(z < a){ 
     return true; 
    } 

return true; //if if and else if fail, returns true 

} 
+1

コードが正常にコンパイルされます。コンパイル時に実際のコードにタイプミスがあるか、エラーが他の行にあるか、環境内で何かが間違っているかのいずれかです。 – ajb

+0

あなたは他のものを必要としません、私はそれがあなたの質問に答えるのではないことを知っていますが、それらは全く不要です。 – TofuBeer

+0

@TofuBeerあなたはもちろんですが、スタイルの問題として、コード全体に応じて、そこに置くほうが少し良いと思います。 – ajb

答えて

1

と同じになり、機能的に

public boolean greaterOrEqual(int a){ 
    int z = 10; 
    if(z > a){ 
     return false; 
    } 
    else if(z < a){ 
     return true; 
    } 
    else{ 
     return true; //if if and else if fail, else is the last resort 
    } 
} 

:ここ

は原始的な例ですところで、StackOverflowヘルプセンターには興味深い記事がたくさんあります。 How to create a Minimal, Complete, and Verifiable exampleHow to askをお勧めします。

説明した問題は再現できません。私たち一人ひとりがそれをコンパイルすることができます。

+0

あなたはそうだ、これはIDE独占的な問題のようだ、日食は私にエラーを渡さなかった、bluejがした。 例が少し劣っていましたが、あなたが持っているものに簡略化することができましたが、私は具体的にelse {}ステートメントを最後に見ていました。 –

+0

先生があなたにBlueJの使用を強要しない場合は、しないでください。 EclipseまたはIntellJに切り替えると、そのいずれかに使用されているため、将来的に作業がスピードアップされます。 – xenteros

+0

BlueJが必要です。何らかの理由でeclipseがコンピュータ上でバグがあります(bluejでは発生しない奇妙なエラー)。私はIntelliJをセットアップすることができませんでしたが、3つの中から一番良いと思われます.JetBrainsのチュートリアルは、どのように動かすことができませんでした。 おそらく私は新人だから分かりません。その70%はファンシーな機能です –

1

結果変数を宣言する場合は、if elseブロック内のreturn文を避けることができます。

このメソッドは、あなたのものに似た論理構造を持っています。おそらくbluejはそれに不平を言うことはありません。

public boolean greaterOrEqual(int a) 
{ 
    int z = 10; 
    boolean result; 
    if (a >= z) 
    { 
     result = true; 
    } 
    else 
    { 
     result = false; 
    } 
    return result; 
} 

xenterosのソリューションはまだまだエレガントですが、

関連する問題