我正在创建一个板球得分跟踪器android应用程序作为在线课程的项目。在该应用程序中,我想显示跑步,检票口和收口。用户输入将有六个按钮:1、2、3、4、6和检票口。
当用户按下按钮时,跑步/检票口和翻车次数将相应更新。但是,为了显示上方,我面临一个问题。
如果您不知道,在板球比赛中,上方有6个球。
在我的应用程序中,游戏限制为5个overs(30个球)。因此,每当按下按钮时,over变量将增加0.1。我希望overs变量在达到1.6时自动更改为2.0。达到2.6时,必须更改为3.0,依此类推,直到达到5.0。
我不知道如何在不使用多个if块的情况下在我的应用程序中实现这一点。
这是我的尝试:
if(overs<5.0){
if(overs == 1.6){
overs = 2.1;
}
if(overs == 2.6){
overs == 3.1;
}
if(overs == 3.6){
overs == 4.1;
}
else{
overs += 0.1;
}
}
我必须在每个按钮方法中使用此代码段,这使整个过程看起来非常难看。
我很好奇,如果不使用java中的多个嵌套if循环,是否有任何方法可以做到这一点。
最佳答案
这可能不是很优雅,但是当满足条件时,您可以增加叠加次数。
if (overs % 1 == .6) // decimal ends as .6
overs += .5;
由于它是浮点数,因此您可能需要使用epsilon值:
if (Math.abs((overs % 1)-.6) < .0000001)
overs += .5;
else
overs += .1;