0

我想将温度、湿度和阳光的值相加,但我不知道为什么它说没有声明“阳光”变量。我希望它能够工作,以便当用户输入“是”时,阳光被设置为 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;
4

1 回答 1

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;
于 2018-10-05T01:02:13.327 回答