выполняется только последний оператор IF - PullRequest
0 голосов
/ 09 ноября 2018

Когда я запускаю свой код на своем телефоне, APK устанавливается и открывается, но когда я набираю два параметра, единственная возвращаемая опция - это заключительное выражение if. Даже если оно ложно и другие операторы верны, оно все равно выполняется. Это файл 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);
}

Этот код кнопки xml onClick равен android:onClick="main". Кто-нибудь знает, как это исправить? Я делаю глупую ошибку? заранее спасибо :) <3 </strong>

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Если выполняется несколько условий if, последнее перезаписывает значение herZone.

Так что вам нужно изменить

if (...) {

}
if (...) {

}
if (...) {

}

до

if (...) {

}
else if (...) {

}
else if (...) {

}
0 голосов
/ 09 ноября 2018

Вы должны использовать

if> else if операторов вместо использования только if операторов

Все операторы IF выполняются одновременно, и поэтому вы можете видеть только последний результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...