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

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


交互式爱情
浏览 152回答 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;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java