我无法使用布尔方法返回的值。如何使用方法(Java)返回的布尔值?
我测试的得分有效,首先:
public boolean isValidScore() {
boolean isScoreValid = true;
scoreHit = Integer.parseInt(scored.getText().toString());//convert the 3 dart score to store it as an integer
int[] invalidScores = {179, 178, 176, 175, 173, 172, 169, 168, 166, 165, 163, 162};
boolean invalidNumHit = false;
for (int i = 0; i < invalidScores.length; i++) {
if (scoreHit == invalidScores[i]) {
invalidNumHit = true;
}
}
if (scoreHit > 180 || scoreHit > scoreLeft[player] || scoreHit + 1 == scoreLeft[player] || (scoreHit == 159 && scoreLeft[player] == 159) || invalidNumHit) {
//won't adjust score left if invalid score/checkout entered
Toast toast = Toast.makeText(getApplicationContext(),
"You've entered an invalid score, Try again!", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL, 0, 75);
toast.show();
scored.setText("0");//have to reset score to zero as won't do below as will return from method if invalid score
isScoreValid = false;//will exit method i.e. won't adjust scores and stats and switch player if invalid score entered.
}
return isScoreValid;
}
然后我会到调用该方法的方法 - 我想,然后从这个enterClicked()方法退出,如果该值是假的 - 在这里我是如何编码的:
public void enterClicked(View sender) {
isValidScore();
if (isValidScore()) {
} else {
return;//exit method if invalid score entered.
}
//is more code here.....
}
它出现isValidScore()的值始终是真实的 - 甚至当我输入一个无效的得分(我举杯消息进行了测试)。
'如果(isValidScore()){//做的东西}其他{//不这样做的东西}' – codeMagic
@codeMagic给出运算的'//更多代码在这里.....'我会首先做出错误的状况。例如。 if(!isValidScore()){return; }' – Blackbelt
@Blackbelt'//在'if'中有更多的代码,不是吗?因为没有代码应该在方法中运行,如果它不是有效分数 – codeMagic