作者thnestar (峰)
看板java
標題[問題] 想請問一下這一段程式碼錯在哪裡?
時間Sat Apr 17 12:37:57 2010
44 public String toString()
45 {
46 if(imaginary==0)
47 return (real+"");
48
49 else if(imaginary<0)
50 return (real+"-"+(imaginary*(-1))+"i");
51
52 else if(imaginary>0)
53 return (real+"+"+imaginary+"i");
54 }
我在compile的時候會顯示
C:\Users\acer\Desktop\5_7\ComplexNumber.java:54: missing return statement
}
^
1 error
但是我如果把這一段給刪除,compile就會成功,
所以我想問題應該是出在這一段。
不過我不曉得到底哪裡有出錯呢?
看不太出來的說...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.222.46
1F:→ pico2k:function要在class{}裡 04/17 12:53
2F:→ tamamad:應該是少了else ,語法錯誤 04/17 13:09
3F:→ adrianshum:最後的 else if 改成 else 04/17 13:10
4F:→ thnestar:所以程式會先判斷是否==0,若不等於0,則會接著 04/17 13:26
5F:→ thnestar:判斷是否<0,最後才判斷是否>0嗎? 如果最後面改成 else 04/17 13:29
6F:→ thnestar:剛剛去再翻一次書終於懂了,原來跟C有點差異 @@" 04/17 13:38
7F:推 carlcarl:主要是因為有return的關係 04/17 14:02
8F:→ thnestar:我不太懂這跟 return 有什麼關係...? 04/17 14:18
9F:→ bala045:就是一定要能夠跑到return的意思 04/17 14:50
10F:推 ddtbenas1:就是可能會沒有return值的狀況 04/17 16:25
11F:推 keeperkai:因為你用的敘述是if else if else if 並沒有else就語法 04/17 23:32
12F:→ keeperkai:上而言他並不能判斷出一定會有return值... 04/17 23:34
13F:推 keeperkai:你在if else那堆的body外打個return, error就會消除 04/17 23:41
14F:→ keeperkai:或者多加上一個else return 00xx 也會消除 04/17 23:42
15F:→ howardwang:因為編譯器只看到if ... else if ... else if ... 04/18 01:07
16F:→ howardwang:它認為萬一條件都不符合時,這個method就沒有回傳值了 04/18 01:09
17F:→ howardwang:它沒聰明到知道你的這三個if,把所有情況都考慮到了 04/18 01:10
18F:→ spin637:要再加個 else 裡面 return 一個不符合以上情況的結果。 05/06 20:31