2016-09-29 110 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; 
     } 

    } 
} 

錯誤消息說'缺少返回語句'的}。NumberVerify:缺少return語句

我嘗試了一組嵌套的括號後加入

return true; 

通過

if((num%2)==0) 

,並沒有與

if((num%2!=0) 

巢類似的東西,雖然

return false; 

這隻會導致isOdd彈出爲true,並且無論輸入的數字本身如何都會彈出爲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,並在第二個之後返回true。

由於num%2 == 0是一個布爾值,您也可以只返回num%2 == 0而不包含if語句的結果。所以你也可以刪除if語句並返回(num%2)== 0;

對於另一個返回(num%2)!= 0;

+0

讓我知道這是否與評論 –

-1

您將return設爲if,並忘記了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

記住,你的方法進入幫助一個'如果-else',每possiable條件必須返回一個結果返回給方法。或者該方法有自己的回報。 – 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必須爲所有分支機構返回boolean值。

這將工作 import static java.lang.System。*;

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

在java中的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; 
    } 
}