Сообщение об ошибке при попытке использовать .equals для присвоения значения переменной - PullRequest
0 голосов
/ 05 октября 2018

Я хочу сложить значения температуры, влажности и солнечного света, но я не знаю, почему это говорит о том, что переменная "солнечного света" не объявлена.Я хочу, чтобы это работало так, чтобы, когда пользователь вводил «да», тогда значение 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 Ответ

0 голосов
/ 05 октября 2018

Вы не сказали пользователю вводить "да" или "нет" в вопросе о солнечном свете, и вы не проверяете, чтобы убедиться, что пользователь ввел любое значение.Если я не введу «да» или «нет», тогда переменная солнечного света будет использоваться до того, как ей будет присвоено какое-либо значение.

Симптом можно устранить с помощью

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;
...