創作內容

2 GP

符號; 邏輯與運算符號

作者:播磨拳兒│2018-10-01 17:50:47│巴幣:4│人氣:1084
這一篇要來聊「符號」

符號在Java中有很多意義

比方之前的宣告式

int number = 123;

一個「=」就是指派

把123指派給number這個int變數

當然,還有很多符號

不外乎「加減乘除」「等於」「大於」「小於」......等等等

下面我就表排一下

§算術運算子

運算子 功能 假設a = 5, b = 2
+ a + b = 7
- a - b = 3
* a * b = 10
/ a / b = 2
% 取餘數 a % b = 3

補充:這邊的「+」還有另外一個特殊用途就是「文字串接」
簡單來說就像是文字接龍一樣
可以把「文字 + 文字」
雖然還沒有解說到文字,這邊可以先記一下,後續會補充這部分

上次教學裡面我的計算式:

number = number + 1;

意思是說,右邊的number的數字先加一,之後指派回去給自己(number)

這個寫法也可以寫成

number += 1;

對於有規律的遞增(加減乘除 取於數均可)

number -= 1;number *= 1;number /= 1;number %= 1;

這也就是遞增

當然你要 += 2 也可以,他就會變成每次都加2(依此類推)

唯獨「1」還有另外一種表示方式

number++;

這樣一來,結束這一行前他就會自己先+1並存回自己的number變數內

還有另外一種表示

++number;

意思是相同,但是執行結果往往會大不同

執行到「++」的時候,程式就會直接+1並存入變數內

但是「++」在前面,程式通常都會在該行結束時才++

就像吃藥一樣

有些藥是飯前吃,有些則是飯後吃

都是要吃藥,但是用藥順序往往會影響藥效

這裡的「++」亦是如此

一般用比較多的只有「++」,反而其他的較少在使用「-- 」「%%」←消音,別反白

為了解釋得更清楚,特地去回顧我的開山祖師爺的解說

我就用他的例子來解說

num1 = 2
num2 = num1++


num1 = 2
num2 = ++num1

差別在於上面的num1會先指派給num2才加1
所以num2會等於2而num1會加一變成3
如下圖


相反的下面的++num1則是先加一才指派
所以num2會等於3而num1也會等於3
如下圖


所以單獨只有number++或是++number兩者是沒有帶大的差別




§比較運算子

運算子 功能
== 等於
!= 不等於
> 大於
>= 大於等於
< 小於
<= 小於等於

先從簡單的解說起吧

假設A = 5  B = 2  C = 5

數學上面寫的「 9 X 9 = 81」

在Java裡面的表示方式是「 9 * 9 == 81」←兩個「等於符號」唷

前面也說了,一個「=」是指派的意思

只是在程式裡面我們不會這樣打而已啦

因為「==」是比較用的

所以 A == C

(一般「==」會用在判斷式裡面,後面會教學如何應用)


不等於:

數學裡面的「≠」在程式裡面就是「!=」

順便提「!」(雖然這個歸類在邏輯運算)

反向的用法就像「!是」,這樣子出來的結果就是「否」

「!Yes」出來就是「No」

雖然一個「=」是指派沒有錯

但是在這邊的反向不是「不指派」的意思唷,千萬記得


大於、大於等於、小於、小於等於

數學表示法「A ≧ B」程式表示法「A >= B」

這樣已經解說完了.....



§邏輯運算子

運算子 功能說明
! Not
& AND(且)
| OR(或)
^ XOR(互斥或)
|| Short-Circuit OR
&& Short-Circuit AND

邏輯運算中「 ! 」「 || 」「&&」這三個是最常用

尤其是「 ! 」反向是最常用的

簡單來說就像唱反調一樣

你說正,我就反,一定和你作對

凡事碰到驚嘆號就是唱反調的意思

當然結合之前的布林值

「!true」的結果就是「false」


在提邏輯概念前,先問問自己對於「計算機概論」了解多少?

雖說沒有非要去了解不可,只要知道用法就好

解釋太多反而會混亂

像是「^」互斥或(英文: XOR)

實際業界用到的機會真的少之又少

這玩意兒就是可以知道但是不用太深入去瞭解的東西

其實是我想不到解釋的方式= =

不過我的祖師爺的解說就太簡潔明瞭,所以就引用吧

假設現在你要買車

而車商說買車會送你最新的GPS衛星導航或是按摩椅

只能選擇一種,且一定要選一個


GPS 按摩椅 是否成交
O O X
O X O
X O O
X X X

因為車商只允許你選一個,而且是一定要選

所以你只能擇一

而程式的表示法大概就像這樣

狀況一:要GPS和按摩椅 車商説:不行 只能選一個


狀況二:我要GPS 不要按摩椅  車商說:成交


狀況三:我不要GPS 我要按摩椅  車商說:成交


狀況四:我不要GPS 我也不要按摩椅 車商説:不行 一定要選一個


&& (AND)
假設你現在有10萬元,還有7天假可以出國

兩個條件都要滿足,你才能出國吧?

所以就會有以下狀況

10萬元 7天假 能否出國玩
O O O
O X X
X O X
X X X

所以AND運算就是

條件有一個為「false」出來的結果就一定會是false

|| (OR)
知道這個怎麼打嗎?

鍵盤的「Enter」上面


(IMac電腦的鍵盤,配置基本上是一樣的啦)

單按會變成「 \ 」

配合「Shift」鍵就會變成「 | 」啦

假設今天有兩款最新的遊戲

戰地風雲 和 決勝時刻同一天發售

你當然會不計代價的兩個都要買

所以下圖就會是

戰地風雲 決勝時刻 要不要出門去買
O O O
O X O
X O O
X X X

因為你兩個都想玩,除非都不買不然是一定會出門買

都不買就不需要出門啦

所以OR運算就是有一個條件為「true」出來就一定會是true



補充說明

在程式中,你會有看到「&」或是「&&」
「 | 」或是「 || 」的狀況

這在程式中的差別在於「速算」

就像我問你兩個問題,並請用「OR」連接

請問你是吃飯了嗎? && 請問你智商有50嗎?

當你看到第一個吃飯的問題,你可能會思考我吃飯了沒

但是後面一個智商有沒有50,我想你應該都會毫不猶豫地回答「true」

就像這樣,需要電腦運算一下的狀況

寫程式的時候時常需要經過一些條件才能拿來比較

就像這邊一樣

所以

如果你只有用一個「 & 」

前面跑出來是「true」

他還會去比對你後面一個問題的答案是還是否

最後才會吐出你要的「true」

但是AND運算是「只要有一個為true,出來就一定是true

所以速算就可以節省掉很多時間

只要條件有一個是true,後面那個就不用比較,直接吐true給你

當然OR運算也是一樣,只是兩個問題有一個是false就會吐false一樣的道理

=============================總結=============================

這一篇拖了有點久,多半是因為懶......

另外一方面是想要解釋邏輯概念而傷腦筋

希望對你有幫助

下一篇見


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4148453
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 2 篇留言

超猛禿頭佬
抓個錯,「取餘數」跟 XOR 的第三個情況寫成 X 了

10-04 03:30

播磨拳兒
你是說%=1嗎? 另外的XOR第三………啊!!真的勒……感謝提醒10-04 08:02
超猛禿頭佬
你第一個表格那邊打成「於」了 LUL

10-04 14:15

播磨拳兒
哈哈,看到囉,謝謝提醒10-04 14:17
我要留言提醒:您尚未登入,請先登入再留言

2喜歡★jerryexcc 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:宣告, 變數與基本資料類... 後一篇:ACG人物介紹:遊王子謳...

追蹤私訊切換新版閱覽

作品資料夾

ShuLongQinHu大家
小屋有新增肌肉練習喔 歡迎來看看看更多我要大聲說1小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】