Вы не сказали пользователю вводить "да" или "нет" в вопросе о солнечном свете, и вы не проверяете, чтобы убедиться, что пользователь ввел любое значение.Если я не введу «да» или «нет», тогда переменная солнечного света будет использоваться до того, как ей будет присвоено какое-либо значение.
Симптом можно устранить с помощью
int sunshine = 0;
но это не решает проблему.
Вы должны:
1) Проинструктировать пользователя вводить «да» или «нет».
2) Проверитьчто пользователь набрал либо «да», либо «нет» и задавал вопрос до тех пор, пока в
3 не будет введено правильное значение. Для более удобной формы используйте оператор if / else.
Вотновый фрагмент кода:
temp = JOptionPane.showInputDialog(null, "What temperature is it outside?");
temperature = Integer.parseInt(temp);
temp = JOptionPane.showInputDialog(null, "What percentage of humidity is there?");
humidity = Double.parseDouble(temp);
temp = "";
while (!temp.equals("yes") && !temp.equals("no")) {
temp = JOptionPane.showInputDialog(null, "Is it cloudy out? Type 'yes' or 'no' ");
}
if (temp.equals("yes"))
sunshine = 25;
else
sunshine = -25;
rating = temperature + humidity + sunshine;