Сообщение об ошибке при попытке использовать.equals для присвоения значения переменной
Я хочу сложить значения температуры, влажности и солнечного света, но я не знаю, почему это говорит о том, что переменная "солнечного света" не объявлена. Я хочу, чтобы это работало так, чтобы, когда пользователь вводил "да", тогда значение sunshine было установлено на 25, а если они вводили "нет", оно устанавливалось на -25. Спасибо!
int temperature;
double humidity;
int sunshine;
String temp;
double rating;
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 = JOptionPane.showInputDialog(null, "Is it cloudy out?");
if (temp.equals("yes"))
sunshine = 25;
if (temp.equals("no"))
sunshine = -25;
rating = temperature + humidity + sunshine;
1 ответ
Вы не сказали пользователю вводить "да" или "нет" в вопросе о солнечном свете, и вы не проверяете, чтобы убедиться, что пользователь ввел любое значение. Если я не введу ни "да", ни "нет", тогда переменная солнечного света используется до того, как ей будет присвоено какое-либо значение.
Вы можете устранить симптом с
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;