Problem
這問題指的是在做邏輯運算時,如果只有使用一個|或一個&,通常都是誤用:
if (test1() | test2()){ // skip }
即使程式碼實際上有照你預期進入block或沒進入block,但當test1()是true時,其實test2()還是會強制被執行的。
How to fix?
只要把一個|改成||即可,這樣如果test1()是true,就會直接執行block中的程式碼:
if (test1() || test2()){ // skip }
這問題指的是在做邏輯運算時,如果只有使用一個|或一個&,通常都是誤用:
if (test1() | test2()){ // skip }
即使程式碼實際上有照你預期進入block或沒進入block,但當test1()是true時,其實test2()還是會強制被執行的。
只要把一個|改成||即可,這樣如果test1()是true,就會直接執行block中的程式碼:
if (test1() || test2()){ // skip }
留言
張貼留言