布尔表达式——Java
我正在编写一个Java代码,其中显示了第0天到第6天的降雨量直方图(单位:毫米),即第0天是星期一,第6天是星期天。我为7天的平均降雨量编写的代码如下:布尔表达式——Java,java,Java,我正在编写一个Java代码,其中显示了第0天到第6天的降雨量直方图(单位:毫米),即第0天是星期一,第6天是星期天。我为7天的平均降雨量编写的代码如下: public float averageRain() { int d; float total = 0.0f;
public float averageRain() {
int d;
float total = 0.0f;
for (d = 0; d < days; d++)
total=total + rain[d];
return(total / days);
}
我假设
days
是一个值为7的常数。替换为:
private static final int DAYS_IN_WEEK = 7;
是否要忽略无效的日数或雨量值?这是互动节目吗?而且,您希望让人们在一天内输入两次雨量值吗?我可以看到有人输入星期三的10mm
,然后试图更正它并输入5mm
。目前,没有办法做到这一点。如果您知道如何使用异常,您可以让您的方法抛出java.lang.IllegalArgumentException,并将其报告给用户,以便用户可以重试:
public void setRainForDay(int day, float rainfall) {
if (day < 0 || day >= DAYS_IN_WEEK) {
// Throw an IAE.
}
if (rainfall < 0.0f) {
// Throw an IAE.
}
rain[day] = rainfall; // Set, not add.
}
public void setRainForDay(整数天,浮动降雨){
如果(日<0日>=周内天数){
//掷骰子。
}
如果(降雨量<0.0f){
//掷骰子。
}
雨[天]=降雨量;//设置,不添加。
}
调用例程捕获IAE,将其报告给用户,用户可以重试
摆动
我没有意识到这个应用程序应该是一个Swing应用程序。在这种情况下,抛出异常不是合适的方法。相反,我们想要一个模型类,一个保存数据的类,一个想要视图类,一个想要控制器类来完成实际工作。而且,我们希望使用
propertychangelister
s和vetoablechangelister
s。当您在RainsionJFormattedTextField
中键入-10
时,它会向控制器发送一个属性更改事件,辉格随后必须拒绝设置模型类,而不是否决更改。实际上,编写和应用InputValidator
会更简单。最好不要给用户犯错的机会。您选择的标记,布尔值
,对于这个问题的描述不充分。事实上,这个问题根本与布尔表达式无关。我想,这只是为了说明我的Java技能是多么的初级!埃里克,谢谢你的回复。抱歉,我应该更清楚一点,这是一个交互式程序(“公共类Rain扩展JFrame实现ActionListener”),其中主程序“Rain”调用方法,还有诸如DriestDay和AverageRainFall等JButton。我将尝试一下您的方法。再次感谢。我不知道这是一个Swing应用程序。然后,有一个更合适的方法。我会编辑的。Eric,谢谢你提供关于InputValidator的提示。我现在正在阅读它,看看它如何应用到我的程序中。非常感谢。
public void setRainForDay(int day, float rainfall) {
if (day < 0 || day >= DAYS_IN_WEEK) {
// Throw an IAE.
}
if (rainfall < 0.0f) {
// Throw an IAE.
}
rain[day] = rainfall; // Set, not add.
}