作者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