(新人間違い、きっと。)
私はコンピュータサイエンスの1年生で、コードを使って課題のプログラムを書こうとしています。
import Java.util.Scanner;
public class Lab10Ex1 {
public static void main(String[] arg) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please type a number: ");
int n = keyboard.nextInt();
calcNumFactors();
}
public static void calcNumFactors(){
System.out.print(n + 1);
}
}
しかし、コンパイルするとエラーが発生します。
Lab10Ex1.Java:10:エラー:シンボルSystem.out.print(n + 1);が見つかりません。 ^
シンボル:変数n
場所:クラスLab10Ex1
誰かが私に間違ったことや、それを修正する方法を説明してくれれば、とてもありがたいです。
n
変数はmain
メソッドで宣言されているため、メインメソッドでのみ表示され、他の場所では表示されず、calcNumFactors
メソッドの内部では表示されません。これを解決するには、calcNumFactors
メソッドにint
パラメータを指定します。これにより、呼び出しメソッドがint
などのn
をメソッドに渡すことができます。
public static void calcNumFactors(int number) {
// work with number in here
}
次のように呼び出します:
int n = keyboard.nextInt();
calcNumFactors(n);
変数n
をpublic static void calcNumFactors()
で宣言する必要があります
コードでは、Hovercraft Full Of Eelsが言ったように、nの値を関数calcNumFactors()
への引数として渡す必要があります。
import Java.util.Scanner;
public class Lab10Ex1 {
private static int n;
public static void main(String[] arg) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please type a number: ");
n = keyboard.nextInt();
calcNumFactors();
}
public static void calcNumFactors(){
System.out.print(n + 1);
}
}