为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

?
慕斯王

TA贡献1864条经验 获得超2个赞

您没有告诉用户对阳光问题输入“是”或“否”,并且您没有检查以确保用户输入了任一值。如果我没有输入“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;


查看完整回答
反对 回复 2021-10-28
  • 1 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信