当我在手机上运行代码时,APK会安装并打开,但是当我键入两个参数时,返回的唯一选项是最终的if语句。即使它为false并且其他语句为true,它仍然会执行。 这是MainActivity.java文件。
float crazy;
float hotness;
static final String NOGOZONE = "ExampleText";
static final String DANGERZONE = "ExampleText";
static final String FUNZONE = "ExampleText" ;
static final String UNICORN = "ExampleText" ;
static final String TRANNY = "ExampleText" ;
static final String LESSTHAN4 = "ExampleText" ;
static final String WIFEZONE = "ExampleText" ;
static final String DATEZONE = "ExampleText" ;
public void main(View view)
{
String herZone = test(hotness, crazy);
((TextView)findViewById(R.id.output)).setText(herZone);
}
static String test(float hotness, float crazy)
{
String herZone = DANGERZONE;
if ( hotness < 5 )
{
herZone = NOGOZONE;
}
if ( hotness >= 5 && crazy <= 5 )
{
herZone = FUNZONE;
}
if ( hotness >= 5 && hotness < 7 && crazy > 5 && crazy <= 7)
{
herZone = DANGERZONE;
}
if ( hotness > 7 && crazy > 8 )
{
herZone = DANGERZONE;
}
if ( hotness >= 7 && hotness < 8 && crazy > 5 && crazy <= 8)
{
herZone = FUNZONE;
}
if ( hotness < 7 && crazy > 7 )
{
herZone = DANGERZONE;
}
if ( hotness >= 8 && crazy >= 7 )
{
herZone = DATEZONE;
}
if ( hotness >= 8 && crazy <= 7 )
{
herZone = WIFEZONE;
}
if ( hotness >= 8 && crazy <= 5 )
{
herZone = UNICORN;
}
if ( hotness >= 8 && crazy <= 4 )
{
herZone = TRANNY;
}
if ( crazy < 4 )
{
herZone = LESSTHAN4;
}
return herZone;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
此Buttons xml onClick代码为android:onClick="main"
。有谁知道如何解决这一问题?我是在犯一个愚蠢的错误吗?在此先感谢 :) <3
答案 0 :(得分:0)
您应该使用
if> else if语句,而不是仅使用 if语句
所有IF语句正在同时执行,因此您只能看到最后的结果。
答案 1 :(得分:0)
如果满足多个if
条件,则最后一个条件将覆盖herZone
的值。
所以您需要更改
if (...) {
}
if (...) {
}
if (...) {
}
到
if (...) {
}
else if (...) {
}
else if (...) {
}