我試圖創建一個簡單的遞回函式,生成一個0&4之間的亂數,并且這個生成的數字不應該等于'correctIndex'。
random(min, max) {
var rn = new Random();
int ans = 0;
ans = (min rn.nextInt(max - min))。
if (ans == correctIndex) {
print("recursive $ans $correctIndex"/span>)。
random(0, 4) 。
} else {
print("Correct Index $correctIndex 5050 $ans"/span>) 。
return ans;
}
}
而我對上述函式的呼叫是這樣的:
setState(() {
randomIndex = random(0, 4)。
});
print("output value of $randomIndex") 。
當遞回部分不被呼叫時,'randomIndex'有一個值。但是當遞回部分被呼叫時,隨機索引的值為null,盡管該函式正在回傳一個值。以下是呼叫遞回時除錯控制臺的輸出
I/flutter ( 5071) 。遞回 2 2 遞回
I/flutter ( 5071) 。正確指數2 5050 35071):輸出值為null。
如果沒有呼叫遞回的話,下面是輸出結果:
I/flutter ( 5071) 。正確的索引 2 5050 1
I/flutter ( 5071) : 輸出值為1。
誰能指導我,我做錯了什么?謝謝你的幫助。
uj5u.com熱心網友回復:
這段代碼相當于:
random(min, max) {
var rn = new Random();
int ans = 0;
ans = (min rn.nextInt(max - min))。
if (ans == correctIndex) {
print("recursive $ans $correctIndex"/span>)。
random(0, 4) 。
} else {
print("Correct Index $correctIndex 5050 $ans"/span>) 。
return ans;
}
return null; // <-- 注意!dart(flutter)會自動做這個。
因此,當if為真時,你將最后回傳null!
所以,也許你想讓random(0, 4);變成return random(0,4)?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/319305.html
標籤:
