public void check() {
if (particle < 0) {
if (point[3].equals(point[3]) == true) {
check = true;
}
check = false;
}
}
不應該point[3]
等於自己嗎?使它成爲現實?爲什麼這不是真的?
public void check() {
if (particle < 0) {
if (point[3].equals(point[3]) == true) {
check = true;
}
check = false;
}
}
不應該point[3]
等於自己嗎?使它成爲現實?爲什麼這不是真的?
您必須在功能check = true;
之後返回,或使用else
。否則,它會掉下來的,如果return false
下來,總是
if (...) {
check = true;
}
else {
check = false;
}
public void check(){
if(particle < 0){
if(point[3].equals(point[3]) == true){
check = true;
}else{
check = false;
}
}
}
什麼?對不起,我只是開始:L – user1610541
我相信'else'在這裏比在回報中更具可讀性。而'check = p3.equals(p3);'會更好。只要我們認爲這樣的情況值得檢查。 – toniedzwiedz
@ user1610541代碼中發生了什麼,它首先檢查粒子是否小於0,然後檢查點[3] .equals(點[3])。如果是,則檢查等於真。那麼在那之後,檢查等於假,因爲即使它在邏輯上是正確的,這裏也有一個副作用現象,它將檢查的值改變爲假。這就是它總是返回錯誤的原因。從函數返回或使用else {}語句時,「check」的邏輯更改爲true,並從check()函數返回。 –
怎麼樣顆粒?
按照約定點應該與自己相等,但是您可以始終使用它。
當然的,但是,其他的回答是正確的,這個功能將始終檢查結束=假
也許你的意思是說別的檢查=假?
public void check(){
if(particle < 0){
if(point[3].equals(point[3]) == true){
check = true;
}else{
check = false;
}
}
//here it is true
}
或者乾脆:
public void check(){
if(particle < 0){
check = point[3].equals(point[3]);
}
//here it is true
}
試試這個:
public boolean check() {
if (particle < 0) {
return point[3].equals(point[3]);
} else {
return false;
}
}
結果與問題中不一樣:返回值被改變,變量'check'僅在原始代碼中'particle> = 0'時被設置。 –
嘗試:'檢查=(p3.equals(P3));'爲您節省一些if的! –
不要做'if(condition == true)'。它與'if(condition)'相同! –
@RudolfMühlbauer相信或不相信,但有些人認爲'method()== true)/ * blah blah * /'a *好的軟件工程實踐*來指示'method()'的返回類型。儘管我強烈反對,但我已將其視爲項目編碼標準的一部分。是的,一個Java項目:/ – toniedzwiedz