Подскажите пожалуйста как за зациклить пользовательский ввод ?
Описание программы : Расчет сопротивления последовательного соединения резисторов Rобщ=R1+R2+R3.
Метод QWE() запрашивает пользователя вести количество резисторов .В отдельном классе метод number(double x) должен создать пользовательский ввод сопротивления для каждого резистора и посчитать общее сопротивления резисторов. в методе main(String[] args) происходит вызов методов . Программа работает до double s = Double.parseDouble(reader.readLine()); и выдает ошибку Exception in thread "main" java.lang.NullPointerException. Как можно решить проблему ?
static double number(double x) throws IOException {
int count = 1;
double count1 = 0.0;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < x; i++) {
System.out.println("Ведите сопротивление "+ " " +count+ " "+"резистор");
double s = Double.parseDouble(reader.readLine());
write.add(s);
count++;
}
for (int i=0;i<write.size();i++){
count1=+write.get(i);
}
return count1;
}
В отдельном классе
public static void main(String[] args) throws IOException {
System.out.println(Afterbirth.number(QWE()));
}
public static double QWE()throws IOException
{
System.out.println("Ведите колмчество резистров!");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
double d = Double.parseDouble(reader.readLine());
return d;
}
package com.javarush.task.task20.task2001;
public class Asset {
public Asset(String name, double price) {
this.name = name;
this.price = price;
}
private String name;
private double price;
public String getName() {
return name;
}
public double getPrice() {
return price;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Asset asset = (Asset) o;
if (Double.compare(asset.price, price) != 0) return false;
return name != null ? name.equals(asset.name) : asset.name == null;
}
@Override
public int hashCode() {
int result;
long temp;
result = name != null ? name.hashCode() : 0;
temp = Double.doubleToLongBits(price);
result = 31 * result + (int) (temp ^ (temp >>> 32));
return result;
}
}