Java程式error ~ Missing return statement

2007-10-19 7:13 am
請問以下Java program 有何問題?為何Compiler顯示有一個名為 missing return statement 的error?謝謝!
在 void main(String [] args) 的內容:
if (isPrime(n))  System.out.println(開雙引號Prime關雙引號);
else  System.out.println(開雙引號Not prime關雙引號);
在 boolean isPrime(int x) 的內容:
boolean tf;  int r=0;
if (x<2) {
tf = false;  return tf;
} else if (x == 2) {
tf = true;  return tf;
} else {
for (int i=2; i <= x; i++) {
if (r == x%i) {
tf = false;
} else {
tf = true;
}
return tf;
}
}

回答 (1)

2007-10-20 10:40 pm
✔ 最佳答案
compiler會利用本身自己的algorithm去判定你的program有沒有return statement.
因為isprime是必須return一個boolean的function
雖然你的program用人眼去看是完全沒有問題的
但是最重要的是第二個else之後
else {
for (int i=2; i <= x; i++) {
if (r == x%i) {
tf = false;
} else {
tf = true;
}
return tf;
}
}

在這一段中,你的return是放在for-loop裡面的,首先,你要知道,for-loop是不一定會執行的,所以compiler就覺判定有機會沒有return statement了

所以,解決方法就是在for-loop外加一個
return false;
就可以了


收錄日期: 2021-04-16 00:50:53
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20071018000051KK04189

檢視 Wayback Machine 備份