僅供參考:我是初學者。此外,我明白,調用方法是一個新手概念,並且已經有幾個這樣的線程。我的情況有點不同,因爲我受到僞代碼的限制,我的程序必須鏡像相同。我無法從其他方法調用方法,包括從main中調用方法。下面是僞代碼後面是我寫的代碼:Java:調用方法main中的方法
僞代碼:
// The user enters an integer and the program calculates that many primes
// It uses 3 methods, including the main. All the methods are in the same class
// and should be declared as ‘public static.’
Project Print the First n Primes
Package printTheFirstNPrimesPackage
Class PrintTheFirstNPrimes
Method Main
Declare numberOfPrimes as integer
Print 「How many prime numbers do you want?"
Read numberOfPrimes from the keyboard
Call the method: PrintNPrimes(numberOfPrimes)
end Method (Main)
// ***********************************************************
// This method accepts an integer and prints that many prime
// numbers, starting at 2. 2 is the lowest primt number.
// ***********************************************************
Method void PrintNPrimes(int n)
declare i as integer
declare myNum as integer
myNum = 2 // The first prime number
i = 0
loop while i < n // This could be a ‘for’ loop
if IsPrime(myNum) // Call the Isprime method, (see below)
i = i + 1
print myNum
End If
myNum = myNum + 1
end loop
end Method PrintNPrimes
// **********************************************************
// This method accepts an integer and tests to see if it is
// a prime number. If it is prime, the method returns true,
// otherwise it returns false.
// **********************************************************
Method boolean IsPrime(int number)
Declare result as boolean
result = true
declare i as integer
i = 2
loop while i < number
if ((number % i) == 0)
result = false
exit loop
end if
end loop
return result
end Method
end Class
End Package
End Project
Java代碼:
package printTheFirstNPrimesPackage;
import java.util.*;
public class PrintTheFirstNPrimes {
public static void main(String [] args) {
int numberOfPrimes;
Scanner primes = new Scanner(System.in);
System.out.println("How many prime numbers do you want?");
numberOfPrimes = primes.nextInt();
// Call the method PrintNPrimes(numberOfPrimes)
}
public static void PrintNPrimes(int n) {
int i;
int myNum;
myNum = 2; // The first prime number
i = 0; {
while (i < n)
// if IsPrime(myNum) // Call the IsPrime method (see below) {
i = i + 1;
System.out.println(myNum);
myNum = myNum + 1;
}
}
public static boolean IsPrime(int number) {
boolean result;
result = true;
int i = 2;
while (i < number) {
if ((number % 1) == 0)
result = false;
}
return result;
}
}
我的主要問題是調用如果內使用isPrime方法聲明。我得到一個錯誤,說IsPrime不能從int轉換爲布爾值,但我知道這個僞代碼限制了我做其他事情。我還希望就如何在main方法中調用PrintNPrimes方法提供建議。謝謝。
請複製並粘貼確切的錯誤消息。我相信一些重要細節已經在你的解釋中失去了。 –
應該是'if(isPrime(number)){'instead? –
這裏也有相當多的大括號在錯誤的地方。 'i = 0;'上的大括號應該在「while」之後向下移動一行。 'System.out.println(myNum)'後面還應該有一個大括號;'更不用說你需要在IsPrime內的循環中增加i(以及用I代替1)。寫一個真正的答案太累了,但這裏有一段代碼(http://ideone.com/drG9p)。 – Lalaland