2017-10-09 75 views
-5

我有一個代碼,但它示出了錯誤的操作符%是未定義的參數類型(一個或多個)INT [],整數操作符%是未定義的參數類型(一個或多個)INT [],整數

public class Test { 
public static void main(String [] args) { 
    int[] n = {2,3,5,7}; 
    System.out.println(arePrimeFactors(n));  
    } 
    public static boolean arePrimeFactors(int[] n){ 
      boolean a = arePrimeFactors(n); 
         if (n%2==0) { 
          return false; 
       for(int i=3;i*i<=n;i+=2) { 
         if(n%i==0) 
          return false; 
     } 
       return true; 
      }}} 

你們PLS可以檢查我是新來的Java 感謝

+8

JavaScript和Java是兩個完全不同的語言 –

+2

鑑於'N'是數組,你能指望什麼'N%2'? – azurefrog

+0

n是一個不是int的數組,加上您的arePrimeFactors方法的第一行會導致無限遞歸循環。即使編譯它也不會正確運行 – Tyler

回答

1

因爲n是一個數組,你需要指定要使用你的模運算哪個元素:

if (n[index] % 2 == 0) { 
    //So stuff... 
} 

一個數組可以包含多個索引處的多個值,例如:n的範圍可以從{1, 6, 4, 2, 8}{10245, 23451, 35312, 1}之間的任意值。您需要將索引號傳遞到括號中以指定您正在使用的元素

請考慮這一點:如果您有一個數組int[] i = {1, 2, 3, 4};,並且您想引用2,那麼鍵入i[1]即可。這是因爲Java中的索引從0開始,而不是1,因此對於第二個元素,您將通過1而不是2。這張照片給你一個我的意思的想法:要

enter image description here

相關問題