只是一些一般的提示:
第一:你正在檢查閹了許多的辦法是質不是可以簡化;你只需要檢查元素一半你正在檢查的整數。
第二:一旦你知道這個數字是非素數,爲什麼你繼續檢查?一旦知道號碼是非素數,就打破for
循環。第三:爲了將結果輸出到控制檯,你不能簡單地打印對象(一個數組就是一個對象,所以打印的任何東西都可能看起來很奇怪)。在您的main
過程中,將結果存儲在一個變量中,並使用for
循環打印每個條目。
正如評論中所述,您應該使用Java命名約定。下面的代碼是對原始代碼的重寫,使用這些約定並應用我上面給出的建議。
public static boolean[] checkForPrimes(int[] numbers) {
/*
The name for the function should be a verbe, and start
with a lower case letter.
The input parameter for the function is an object, and
must also start with a lower case letter.
*/
boolean[] veredict = new boolean[numbers.length];
for(i = 0; i < numbers.length; i++) {
veredict[i] = true;
// You only need to check up to half each number
for(j = 2; j <= numbers[i]/2; j++) {
if(numbers[i] % j == 0) {
veredict[i] = false;
break; // once you know the number is non-prime
// exit the loop
}
}
}
return veredict;
}
public static void printResult(int[] numbers) {
boolean[] veredict = checkForPrimes(numbers);
// You must traverse the arrays to print them out:
for(i = 0; i < numbers.length; i++) {
System.out.println(numbers[i] + " " + veredict[i]);
}
}
什麼語言是什麼? – njzk2
如果你不能解釋**如何**這個代碼不起作用,我們不能困擾嘗試和猜測問題可能是什麼。 –
這可能是c# –