2016-09-29 9 views
1
import static java.lang.System.*; 

public class NumberVerify 
{ 
    public static boolean isOdd(int num) 
    { 
     if((num%2)==0) 
     { 
      boolean yes = true; 
      return true; 
     } 

    } 
    public static boolean isEven(int num) 
    { 
     if((num%2)!=0) 
     { 
      boolean yes = false; 
       return false; 
     } 

    } 
} 

エラーメッセージには、}の「return statementsがありません」と表示されます。NumberVerify:不明のリターンステートメント

私は

if((num%2)==0) 

でネストされた括弧のセットの後

return true; 

を追加しようとした

return false; 
であるが、

if((num%2!=0) 

巣と類似した何かをしました

これは、入力された番号自体に関係なく、isOddが真となるようにポップアップし、isEvenがfalseとしてポップアップするようにしました。

ここにランナープログラムがあります。

import static java.lang.System。*; import java.util.Scanner;

public class NumberVerifyRunner 
{ 
    public static void main (String[] args) 
    { 
     //add in input 
     System.out.println("5 is odd :: " + NumberVerify.isOdd(5)); 
     System.out.println("5 is even :: " + NumberVerify.isEven(5)); 

     System.out.println("0 is odd :: " + NumberVerify.isOdd(0)); 
     System.out.println("0 is even :: " + NumberVerify.isEven(0)); 

     System.out.println("2 is odd :: " + NumberVerify.isOdd(2)); 
     System.out.println("2 is even :: " + NumberVerify.isEven(2)); 


     //add in more test cases 
    } 
} 

NumberVerifyクラスの欠落しているリターンステートメントを修正するにはどうすればよいですか?

+3

戻り値がないため、メソッドが返されない場合があるため、メソッドが返されない場合があります。 – Li357

+0

あなたのメソッドでは、IF条件が真でない場合はどうなりますか?あなたの方法は何を返さなければならないのですか?コンパイラも同様の問題に直面していたので、エラーが発生しました。 –

答えて

0

最初のif文の後にreturn falseを追加し、2番目のif文の後にtrueを返します。

また、num%2 == 0がブール値であるため、if文なしでnum%2 == 0の結果を返すこともできます。したがって、if文を削除して(num%2)== 0を返すこともできます。

もう1つは(num%2)を返す!= 0;

+0

これがコメントに役立つかどうか教えてください –

-1

あなたはreturnifに、elseを忘れました。あなたの方法でisOdd()returnは、方法に含まれていないifにのみあります。このようにコードを変更することができます。

public static boolean isOdd(int num) 
{ 
    if((num%2)==0) 
    { 
     boolean yes = true; 
     return true; 
    } else {// you must add the else 
     return true;// return a boolean value here.true or false,it's up to you. 
    } 
    // Or add a return below without add the else. 
    return ture;// true or false,it's up to you. 
} 
public static boolean isEven(int num) 
{ 
    if((num%2)!=0) 
    { 
     boolean yes = false; 
      return false; 
    } else {// you must add the else 
     return true;// return a boolean value here.true or false,it's up to you. 
    } 
    // Or add a return below without add the else. 
    return ture;// true or false,it's up to you. 
} 
+0

あなたのメソッドは 'if-else'に入ります。全ての可能な条件は結果をメソッドに返さなければなりません。または、方法はそれ自身のリターンです。 – stackoverflow

1

'if'句が満たされていない場合は、値を返す必要があります。 すべてのコードブロックは値を返す必要があります。このソリューションはうまくいくはずです。

public static boolean isOdd(int num) { 
    if ((num % 2) == 0) { 
     return true; 
    } else { 
     return false; 
    } 
} 

public static boolean isEven(int num) { 
    if ((num % 2) != 0) { 
     return false; 
    } else { 
     return true; 
    } 
} 
0

isOddisEvenは、すべての分岐のためのブール値を返す必要があります。

これは動作します import static java.lang.System。*; Javaで

public class NumberVerify 
{ 
    public static boolean isOdd(int num) 
    { 
     return numr%2 == 1; 
    } 
    public static boolean isEven(int num) 
    { 
     return num % 2 == 0; 
    } 
} 
0

あなたのreturn文は、最後の文です。あなたのケースでは、単にコード

import static java.lang.System.*; 

public class NumberVerify 
{ 
    public static boolean isOdd(int num) 
    { 
     if(num%2 == 0) 
     { 
      return true; 
     } 
     return false; 

    } 

    public static boolean isEven(int num) 
    { 
     if(num%2 !=0) 
     { 
      return true; 
     } 
     return false; 
    } 
} 
0
import static java.lang.System.*; 

    public class NumberVerify 
    { 
     public static boolean isOdd(int num) 
     { 
      if((num%2)!=0) 
      { 
      boolean yes = true;   
      } 
      return yes; 
     } 

     public static boolean isEven(int num) 
     { 
      if((num%2)==0) 
      { 
      boolean yes = true;   
      } 
      return yes; 
     } 
    } 

あなたのコード以下の聖霊降臨祭を変更するreturn文が範囲外である持っています。 メソッドのシグネチャではブール値が返されますが、returnスコープのif()コントロールスコープだけを置くと、パブリックスコープ(現在のメソッドスコープ)が変更されます。

0

あなたのすべてのコードパスが値を返しません。

考えてみましょうあなたのコード:。

public static boolean isOdd(int num)//Assume num as 7 
    { 
     if((num%2)==0)// 7 % 2 will be 1 , condition fails 
     { 
      boolean yes = true; 
      return true;// this statement won't be executed 
     } 
     // you have no return statement here 

    } 

インポート静的java.lang.Systemの*;

public class NumberVerify 
{ 
    public static boolean isOdd(int num) 
    { 
     boolean isOddNumber = (num %2) !=0 
     return isOddNumber; 

    } 
    public static boolean isEven(int num) 
    { 
     boolean isEvenNumber = (num %2)==0 
     return isEvenNumber; 
    } 
}