Discussion:
[問題] If else & return 的問題
(时间太久无法回复)
2007-06-06 00:53:35 UTC
Permalink
寫了兩個需要return的method
為什麼第二個在compile的時候
會要求return值, 第一個確不會呢?
在我眼裡是一樣的@@

請教一下!非常感謝!

1.
public int getP(char c){
if(c=='*' || c=='/')
return 2;
else if(c =='+'||c =='-')
return 1;
else
return 0;
}

2.
public char pop(){

if(top == -1)
System.out.println("Stack是空的");
else
return stack[top--];

}



--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.1.105
勁過呂布
2007-06-06 02:02:34 UTC
Permalink
※ 引述《rockcen (杰)》之銘言:
: 寫了兩個需要return的method
: 為什麼第二個在compile的時候
: 會要求return值, 第一個確不會呢?
: 在我眼裡是一樣的@@
: 請教一下!非常感謝!

: 2.
: public char pop(){
: if(top == -1)
: System.out.println("Stack是空的");
: else
: return stack[top--];
: }

因為當 top == -1 的時候它只會跑 "System.out.println("Stack是空的");"

然後沒有任何 return statement 會執行到,所以 compiler 會告訴你要傳回值

而第一個 method 中所有 if... else... 都有 return statement 所以沒有問題.

--
勁過呂布的勁過相薄...

http://www.wretch.cc/album/superlubu

亂七八糟的,不好意思 m(_ _)m

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 147.8.130.225
※ 編輯: superlubu 來自: 147.8.130.225 (06/06 10:02)
hubert
2007-06-06 05:55:58 UTC
Permalink
※ 引述《rockcen (杰)》之銘言:
: 寫了兩個需要return的method
: 為什麼第二個在compile的時候
: 會要求return值, 第一個確不會呢?
: 在我眼裡是一樣的@@
: 請教一下!非常感謝!

: public char pop(){
: if(top == -1)
: System.out.println("Stack是空的");
你這裡又沒有return…當然會錯

: else
: return stack[top--];
: }

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.17.226

继续阅读narkive:
Loading...