我对Java很新,对不起,如果这个问题太简单了。我试图评估一个数组是否是斐波纳契数列的一部分。我不知道如何回归" true"当整体"为"时的价值循环不会破坏。有任何想法吗?先感谢您!这就是我现在所拥有的:
<div ng-app="qnaModule" ng-controller="qaCtrl">
<ol >
<li ng-repeat="quest in questionJson">
{{ quest.question }}
<div>
<label ng-repeat="questionOption in optionJson" ng-if="questionOption.quesId == quest.quesId">
<input type= "radio" ng-model="answerJson[quest.quesId].answer" value="{{questionOption.option}}">
{{ questionOption.option }}
<br/>
</label>
</div>
</li>
</ol>
<button ng-click="checkScore(answerJson)">Check Score</button>
</div>
答案 0 :(得分:3)
您始终从该方法返回true
。你应该做如下的事情:
public boolean checkFibb(ArrayList<Integer> array1) {
int i;
int fibb;
boolean isFibb = true;
if (array1.size() < 3) {
System.out.println("Your array is too short!");
isFibb = false;
} else {
for (i = 0; i <= array1.size() - 2; i++) {
fibb = array1.get(i + 2) - (array1.get(i + 1) + array1.get(i));
if (fibb != 0) {
System.out.println("Elements are not part of the Fibonacci sequence.");
isFibb = false;
break;
} else {
System.out.println("Elements are part of the Fibonacci sequence.");
}
}
}
return isFibb;
}
答案 1 :(得分:2)
您在代码中所做的是当您检测到元素不是斐波那契序列的一部分时,您正在打破循环的当前迭代。 break
仅停止您所在循环的当前迭代。此时您要执行的操作是return false
。当您检测到数组确实是斐波那契序列时,此时您需要return true
。
如果数组太短,则它不能是斐波纳契数列,因此此时你会return false
。
public boolean checkFibb(ArrayList<Integer> array1) {
int i;
int fibb;
if (array1.size() < 3) {
System.out.println("Your array is too short!");
return false;
} else {
for (i = 0; i <= array1.size() - 2; i++) {
fibb = array1.get(i + 2) - (array1.get(i + 1) + array1.get(i));
if (fibb != 0) {
System.out.println("Elements are not part of the Fibonacci sequence.");
return false;
} else {
System.out.println("Elements are part of the Fibonacci sequence.");
return true;
}
}
}
}