package round1;
import java.util.Scanner;
public class MathewJhon {
int i = 0;
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
int x = scn.nextInt();
int y = scn.nextInt();
int nth = scn.nextInt();
int a[] = genrate(x, y);
System.out.println(x + " " + y + " " + nth);
}
private static int[] genrate(int x, int y) {
for(int i=1;i<y;i++){
int val=(i*(i+1))/2;
int a[]= new int[y];
a[i]=val;
}
return a;
}
}
質問する
99 次
2 に答える
6
メソッド スコープで配列を宣言する必要があります。
private static int[] genrate(int x, int y) {
int a[] = new int[y];
for(int i=1; i<y; i++){
int val = (i*(i+1))/2;
a[i] = val;
}
return a;
}
ループ内で変数を宣言すると、その変数はそのループ内にのみ存在します。
元のメソッドはループのたびに新しい配列を作成していたため、単一の配列に値を入力していなかったことに注意してください (明らかに意図したように)。また、パラメーターx
は使用されていないようです。それはおそらく別のエラーですか?
于 2013-08-13T18:12:41.240 に答える
2
この場合、配列のスコープはfor
ループに限定されます。これを試して:
private static int[] genrate(int x, int y) {
int a[] = new int[y];
for(int i=1;i<y;i++){
int val=(i*(i+1))/2;
a[i]=val;
}
return a;
}
Java のループまたはメソッド内で任意の種類の変数を宣言すると、そのループまたはメソッドの外ではアクセスできません。
于 2013-08-13T18:12:55.453 に答える