Java學習記錄11 — if then

張小雄
Jan 5, 2021

--

if為判斷語句,如果符合條件就往下執行,不符合就跳過,注意if結尾沒有;

疑~上圖不是說符合才會執行,按這張圖的邏輯應該7.8兩行都不會執行阿
原來是第7行結尾的; 電腦認為第8行是完整獨立的,與上面的if無關,所以就執行了
那要如何讓電腦知道這是一個整體呢?

很簡單就像外面的代碼一樣 加上一組{ } 如6行尾9行頭 即可,加上後7.8兩行變成一個整體,因為不符合都沒有執行了

驗證,改成true後,7.8兩行都有執行。

判斷分數是否大於60分

兩個判斷同時符合,&(ctrl+7)是and的意思,條件a and 條件b 同時符合 就執行代碼

驗證 將前面的條件提高到90, 下方沒有執行,因為不是兩個條件都符合

兩個判斷只需符合一個,|| (shift + ) 是or的意思,條件a or 條件b 任一個滿足就往下執行

驗證,兩個中沒有任一個滿足,沒有執行下面代碼

任一個滿足就執行,所以兩個都符合也會執行

可以看到報錯是說,要boolean 但卻收到int

這次設個變量,一樣用1個=號 ,疑,怎麼代碼沒有紅色提示報錯?

那麼你覺得 如果執行代碼的話 下方能被打印出句子嗎?

竟然可以!
這是為什麼呢?
因為if後面要的是boolean,之前給的是int,這次給的是boolean所以沒有報錯。

但我並不了解為什麼會設計成這樣能通過
把26行改成false的話,下面代碼是不會執行的
同樣都是1個= 賦值
那為什麼true會執行,false卻不會
我來設計的話,if判斷句該行就不能賦值,一定會有人出錯,想判斷卻變成賦值

若你知道的話,歡迎留言告知

但還有個特別的地方,此時圖中顯示該變量是沒被使用到的

2個=,變量就變亮了,代表有使用到

! = not

26跟29為縮寫
26是 isCar == true
29是 26的相反 意思是isCar == False

a = true
!a = flase

a = false
!a = ture

三元運算符,可以看到wasCar被isCar賦值成false

else語句,在前面不符合時才會執行,現在圖中if有符合所以沒執行

現在if不符合了,所以執行了else的代碼

此圖中,if為條件一 ,,else if 條件二,else為不符合前兩者時

如果條件1跟2都符合,先走到的先執行,然後跳出if。

30行的變數,放在了if判斷句裡面計算。

如果放到33行,會發現報錯了且變量是紅色的,沒有此變量。
因為在if代碼塊 執行完後,該變量就刪除了。

上方用到的代碼:點此

--

--

張小雄
張小雄

Written by 張小雄

記錄成為軟體工程師的過程

No responses yet