尝试使用.equals赋予变量值时的错误消息

时间:2018-10-05 00:36:16

标签: java variables joptionpane initializing

我想累加温度,湿度和日照的值,但是我不知道为什么它说未声明“ 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 :(得分:1)

您尚未告诉用户在阳光问题上键入“是”或“否”,并且您没有检查以确保用户键入了两个值。如果我没有输入“ yes”或“ no”,则在将阳光变量分配给任何值之前使用该变量。

您可以使用以下方法消除症状

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;