2017-09-27 8 views
0

パブリッククラスSingelNumber {私はエラーを得た(Java)のエラー:このメソッドは、int型

public static void main(String[] args) { 
    int[] numList = {1,1,2,2,3,1,7,3}; 
    System.out.print(singleNumber(numList)); 

} 
public static int singleNumber(int[] nums) { 

     boolean dup = false; 
     int check = 0; 

     for (int i=0;i<nums.length;i++){ 
      check =nums[i]; 
      for (int j=i+1;j<nums.length;j++){ 
       if (check==nums[j]) 
        dup = true; 
        break; 
      } 

      } 
     if (dup==false) 
      return check;  
    } 
} 

の結果を返さなければならない「このメソッドは、int型の結果を返さなければなりません」。私は変数チェックがintなのでなぜか分かりません。

+2

'if'チェックが合格しなかった場合、メソッドは何を返しますか – Ramanlfc

+0

' dup'が真の場合、戻り値はありません。また、条件内のブール値を明示的にチェックしないでください。ブール値は既にブール値です。代わりに 'if(!dup)'を使用する –

+0

特定の条件の下でのみ 'int'を返します。他の条件の下では、何も返さない。エラーを確認するのに役立つコードの書式を修正します。 –

答えて

0

のJavaは、DUPがtrueの場合、あなたがelse文を追加する必要が何をすべきか混乱しています。

0

これは、関数がdupがfalseであるかどうかをチェックするためです。 dupが真であれば、未定義に戻ります。それはすぐにあなたの過ちを指摘しますので、あなたは、(IntelliJのような)IDEをインストールする必要があります

if (dup==false) 
     return check; 
else return 0; 

関連する問題