Ошибка в коде, не понимаю причину
В итоге ошибка по типу
Exception in thread "main" java.lang.NullPointerException
at labs.notes.calculate(notes.java:13)
at labs.notes.main(notes.java:32)
Которая ссылается на строку с переменной "t[0]=0;""
Я так понимаю, что это из-за объявления "static double [] t,i1,i2,u;" Если поменять строку на допустим "static double []t= new double[3];" То ошибки не будет, но со всеми переменными (t,i1,i2,u) такое не провернешь. Хочу спросить, что мне исправить.
static double [] t,i1,i2,u;
static int n;
public static void calculate() {
double w1=1000, w2=5*w1, L=0.1e-3,
M=0.6*L, R=10, E0=5, E1=5,
E2=5, t0=0, t1=0.02;
double dt = (t1-t0)/(n-1);
t[0]=0;
for(int i = 0;i<n;i++)
t[i]=t[i-1]+dt;
for(int i=0;i<n;i++)
i1[i]=E1/(L*w1)*Math.sin(w1*t[i]);
i2[0]=0; u[0]=0;
for(int i=1;i<n;i++) {
i2[i]=(1/(1+R*dt/L))*(i2[i-1]+dt/L)*(E0+E2*Math.cos(w2+t[i]));
u[i]=-M/dt*(i2[i]-i2[i-1]+i1[i]-i1[i-1]);
}
for(int i=0;i<n;i++) {
i1[i]*=L*w1;
i2[i]*=L*w1;
}}
В мейне у меня:
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
System.out.println("n:");
int n=scan.nextInt();
i1 = new double[n];
i2 = new double[n];
u = new double[n];
calculate();
}}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
/*int*/ n = scan.nextInt();
t = new double[n];
...
for (int i = 1; i < n; i++)
t[i] = t[i - 1] + dt;