ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

Java - Basic Operators

Operator ใน Java นั้นก็คือสิ่งที่เอาไว้จัดการกับตัวแปรต่างๆ เช่น การ บวก ลบ คูณ หาร หรือการทำสิ่งต่างๆ

เราสามารถแบ่ง Operator เป็นกลุ่มได้ดังนี้

1. Arithmetic Operators

2. Relational Operators

3. Bitwise Operators

4. Logical Operators

5. Assignment Operators

6. Misc Operators

1. Arithmetic Operators 

Arithmetic Operators ก็คือ Operator ทางคณิตศาสตร์ เช่น การบวก ลบ คูณ หาร

ตัวอย่างเช่น

Operator

Description

Example

+

การบวก

x = 5 + 5

-

การลบ

x = 10 - 5

*

การคูณ

y = 2 * 2

/

การหาร

y = 4 / 2

%

การหารแล้วเอาแต่เศษ

z = 11 % 2 (จะได้ 1)

++

การเพิ่มค่าของจำนวนเต็ม 1

x = x++;

--

การลดค่าของจำนวนเต็ม 1

y = y--;

 

2. Relational Operators

         Relational Operators ก็คือ Operator ทีเอาไว้เทียบความสัมพันธ์ เช่น เท่ากับ, มากกว่า, น้อยกว่า ซึ่งค่าที่ได้จากการเทียบนี้จะได้ค่า true หรือ false ซึ่งเอาไว้เช็คเงื่อนไข

 

Operator

Description

Example

==

การตรวจสอบค่าทั้งสองค่าว่ามีค่าเท่ากันไหม
ถ้าเท่ากันจะได้ค่า true

(2 == 2)

!=

การตรวจสอบค่าทั้งสองค่าว่ามีค่าไม่เท่ากันไหม
ถ้าไม่เท่ากันจะได้ค่า true

(2 != 3)

การตรวจสอบค่าทั้งสองค่าว่าค่าทางด้านซ้ายมีค่ามากกว่าค่าทางด้านขวาหรือไม่
ถ้าใช่จะได้ค่า true

(5 > 1)

การตรวจสอบค่าทั้งสองค่าว่าค่าทางด้านซ้ายมีค่าน้อยกว่าค่าทางด้านขวาหรือไม่
ถ้าใช่จะได้ค่า true

(1 < 5)

>=

การตรวจสอบค่าทั้งสองค่าว่าค่าทางด้านซ้ายมีค่ามากกว่าหรือเท่ากับค่าทางด้านขวาหรือไม่
ถ้าใช่จะได้ค่า true

(5 >= 5)

<=

การตรวจสอบค่าทั้งสองค่าว่าค่าทางด้านซ้ายมีค่าน้อยกว่าหรือเท่ากับค่าทางด้านขวาหรือไม่
ถ้าใช่จะได้ค่า true

(5 <= 5)

3. Bitwise Operators

               Bitwise Operators ก็คือ การกระทำระดับ bit ของตัวแปรโดยมีเงื่อนไขว่า ตัวแปรที่จะนำมาใช้ใน Bitwise Operatos นั้นจะต้องเป็นตัวเลขจำนวนเต็ม (เช่น byte, short, int, long) หรือเป็นตัวอักษร (char)

โดย Bitwise Operator ยังแบ่งได้อีกเป็น 2 กลุ่ม

3.1 Logical Bitwise Operators ซึ่งจะได้แก่

     3.1.1  ~  (bitwise unary NOT)

     3.1.2  &  (bitwise AND)

     3.1.3  |  (bitwise OR)

     3.1.4  ^  (bitwise EXCLUSIVE OR)

     3.1.5  >>  (shift right)

     3.1.6  >>>  (shift right zero fill)

     3.1.7  <<  (shift left)

- ตัวอย่างการทำ Logical Bitwise Operators เช่น

     int a = 10; // 0000 1010 <- ค่านี้เกิดจากการใช้คำสั่ง System.out.println(Integer.toBinaryString(a));

     int b = 99; // 0110 0011 <- ค่านี้เกิดจากการใช้คำสั่ง System.out.println(Integer.toBinaryString(b));

     ใช้กับ Operator OR จะได้ดังนี้

     a | b = 0110 1011

     ใช้กับ Operator AND จะได้ดังนี้

     a & b = 0000 0010

     ใช้กับ Operator EXCLUSIVE OR จะได้ดังนี้

     a ^ b = 0110 1001

     ใช้กับ Operator NOT จะได้ดังนี้

     ~a = 1111 0101

     ใช้กับ Operator shift right จะได้ดังนี้

     b >> 2 (จะได้ 0001 1000)

     ใช้กับ Operator shift right zero fill จะได้ดังนี้

     b >>> 2 (จะได้ 0001 1000)

     ใช้กับ Operator shift left จะได้ดังนี้

     b << 2 (จะได้ 1000 1100)

3.2 Assignment bitwise operators ได้แก่    

     3.2.1  &=  (bitwise AND assignment)

     3.2.2  |=  (bitwise OR assignment)

     3.2.3  ^=  (bitwise XOR assignment)

     3.2.4  >>=  (shift right assignment)

     3.2.5  >>>=  (shift right zero fill assignment)

     3.2.5  <<=  (shift left assignment)

- ตัวอย่างการทำ Assignment Bitwise Operators เช่น

        a &= 5 จะมีค่าเหมือนกันกับ  a = a & 5

        a |= 5 จะมีค่าเหมือนกันกับ  a = a | 5

        a ^= 5 จะมีค่าเหมือนกันกับ  a = a ^ 5

        a >>= 5 จะมีค่าเหมือนกันกับ  a = a >> 5

        a >>>= 5 จะมีค่าเหมือนกันกับ  a = a >>> 5

        a <<= 5 จะมีค่าเหมือนกันกับ  a = a << 5

4. Logical Operators

               Logical Operators คือการนำ boolean มาทำการ AND, OR หรือ NOT กัน โดยผลลัพธ์ที่ได้ออกมาจะเเป็นเพียงค่า true หรือ false
สมมติว่าได้ประกาศค่าตัวแปรเอาไว้ 2 ตัวเป็นดังนี้


boolean a = true;
boolean b = false;

Operator

Description

Example

&&

จะเป็นค่า true ก็ต่อเมื่อค่าทั้งสองค่าเป็น true

(a && b) ได้ค่า false

||

จะเป็นค่า false ก็ต่อเมื่อค่าทั้งสองค่าเป็น false

(a || b) ได้ค่า true

!

จะทำการกลับค่าจาก true เป็น false หรือจาก false เป็น true

!a ได้ค่า false

5. Assignment Operators

               Assignment Operators เป็น Operators ที่เอาไว้กำหนดค่าให้กับตัวแปร

Operator

Description

Example

=

เป็นการกำหนดค่าให้กับตัวแปร

a = 10

+=

นำตัวแปรด้านซ้ายมาบวกเพิ่ม ก่อนที่จะกำหนดค่าให้

a += 10 มีค่าเท่ากับ a = a + 10

-=

นำตัวแปรด้านซ้ายมาลบออก ก่อนที่จะกำหนดค่าให้

a -= 10 มีค่าเท่ากับ a = a - 10

*=

นำตัวแปรด้านซ้ายมาคูณ ก่อนที่จะกำหนดค่าให้

a *= 10 มีค่าเท่ากับ a = a * 10

/=

นำตัวแปรด้านซ้ายมาหาร ก่อนที่จะกำหนดค่าให้

a /= 10 มีค่าเท่ากับ a = a / 10

%=

นำตัวแปรด้านซ้ายมาหารเก็บเศษ ก่อนที่จะกำหนดค่าให้

a %= 10 มีค่าเท่ากับ a = a % 10

<<=

นำตัวแปรด้านซ้ายมาเลื่อนบิตไปทางซ้าย ก่อนที่จะกำหนดค่าให้

a <<= 10 มีค่าเท่ากับ a = a << 10

>>=

นำตัวแปรด้านซ้ายมาเลื่อนบิตไปทางขวา ก่อนที่จะกำหนดค่าให้

a >>= 10 มีค่าเท่ากับ a = a >> 10

&=

นำตัวแปรด้านซ้ายมาทำการ AND ระดับบิต ก่อนที่จะกำหนดค่าให้

a &= 10 มีค่าเท่ากับ a = a & 10

^=

นำตัวแปรด้านซ้ายมา XOR ระดับบิต ก่อนที่จะกำหนดค่าให้

a ^= 10 มีค่าเท่ากับ a = a ^ 10

|=

นำตัวแปรด้านซ้ายมา OR ระดับบิต ก่อนที่จะกำหนดค่าให้

a |= 10 มีค่าเท่ากับ a = a | 10

 

6. Misc Operators

               นอกเหนือจาก Operators ที่ได้กล่าวมาแล้วทั้งหมด ยังมี Operators อื่นๆอีกที่ใช้บ่อยในการเขียน JAVA  อย่างเช่น

6.1  Conditional Operator ( ? : )

               Conditional Operator เป็น Operator ที่เอาไว้ตรวจสอบเงื่อนไข If Else เช่น ถ้าเงื่อนไขเป็นจริงจะทำอะไร หรือเงื่อนไขเป็นเท็จจะทำอะไร ตัวอย่างการใช้เช่น

int a = 10;
int b = 3;
a = (b > 1) ? 5 : 15;

จากตัวอย่างที่ให้มาข้างบนนั้น b มีค่าเป็น 3  เมื่อแทนค่าในวงเล็บ จะได้ ( 3 > 1 ) ซึ่งจะได้ค่า true

ดังนั้น a จะถูกกำหนดค่าให้เป็น

แต่ถ้าเรากำหนดค่าให้

b = 0
int a = 10;
int b = 0;
a = (b > 1) ? 5 : 15;

เมื่อแทนค่าในวงเล็บจะได้ ( 0 > 1 ) ซึ่งไม่เป็นจริง ทำให้ได้ค่า false เมื่อเป็น false แล้วเงื่อนไขที่จะเลือกจะเป็นตัวด้านหลัง ซึ่งในที่นี้ก็คือ 15  โดย a จะถูกกำหนดค่าเป็น 15

6.2  instanceof Operator

               instanceof Operator เป็น Operator ที่ใช้กับตัวแปรที่เป็น Object ได้เท่านั้น โดยจะนำตัวแปร object มาทำการตรวจสอบว่ามีชนิดของ Class หรือ Interface ถูกต้องตามที่ระบุเอาไว้หรือไม่โดยสามารถตรวจสอบการเป็นแม่ลูกได้ด้วย

ตัวอย่างการใช้เช่น

String s = ""; 
if(s instanceof String){
System.out.println(true); // จะได้ค่านี้เพราะว่า s เป็นตัวแปรชนิด String
}else{
System.out.println(false)
}  
if(s instanceof Object){
System.out.println(true); // จะได้ค่านี้เพราะว่า object ทุกๆตัวจะเป็น sub class ของคลาส Object เสมอ
}else{
System.out.println(false);
}
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
VDO - สคลิปการอัดวีดีโอ&วีดีโอ tool_videotogif - โปรแกรมแปลงวีดีโอเป็นรูปภาพแบบ GIF
โดย jirawoot ส 24 ส.ค. 2019 6:12 pm บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
0
5
ส 24 ส.ค. 2019 6:12 pm โดย jirawoot
การใช้ functions_user เพื่อเพิ่มข้อมูล user ใน phpbb
โดย Ittichai_chupol ส 24 ส.ค. 2019 6:00 pm บอร์ด PHP Knowledge
0
5
ส 24 ส.ค. 2019 6:00 pm โดย Ittichai_chupol
Google Photos สามารถค้นหาหาข้อความในรูปภาพได้แล้ว
โดย jamepiyawat ส 24 ส.ค. 2019 5:39 pm บอร์ด Share Knowledge
0
5
ส 24 ส.ค. 2019 5:39 pm โดย jamepiyawat
วิธี ตรวจสอบ DNS nameserver แบบง่ายๆ
โดย aninthana ส 24 ส.ค. 2019 3:33 pm บอร์ด Web Hosting Review - Free Host Share Host VPS
0
18
ส 24 ส.ค. 2019 3:33 pm โดย aninthana
วิธีประมาณการรายได้-ค่าใช้จ่ายครึ่งปีหลัง มีวิธีประมาณการยังไง
โดย EyePornnipa ส 24 ส.ค. 2019 3:19 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
17
ส 24 ส.ค. 2019 3:45 pm โดย Amp_Audit
มีวิธีกำหนดภาพ เป็นแนวนอนไหมครับ แล้วก็ ถ้าภาพเกิน 4 ภาพให้ลงมาอีกบรรทัดนึงครับ
โดย Patipat ส 24 ส.ค. 2019 1:53 pm บอร์ด HTML CSS
2
15
ส 24 ส.ค. 2019 2:18 pm โดย Patipat
Q - ทำไมหน้าตั้งค่าของ MDFiles Categories ใช้งานไม่ได้ครับ
โดย Patipat ส 24 ส.ค. 2019 11:31 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
9
ส 24 ส.ค. 2019 11:31 am โดย Patipat
ใบสำคัญที่กรมสรรพากรยอมรับ มีอะไรบ้าง
โดย EyePornnipa ส 24 ส.ค. 2019 11:21 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
24
ส 24 ส.ค. 2019 11:36 am โดย Amp_Audit
งานประจำวันที่ 24 สิงหาคม 2562
โดย Patipat ส 24 ส.ค. 2019 10:25 am บอร์ด M088 - ปฏิภัทร สารธรรม
1
7
ส 24 ส.ค. 2019 7:32 pm โดย Patipat
งานประจำวันที่ 24 สิงหาคม 2562
โดย jamepiyawat ส 24 ส.ค. 2019 10:19 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
1
10
ส 24 ส.ค. 2019 7:21 pm โดย jamepiyawat
งานประจำวันที่ 24 สิงหาคม 2562
โดย EyePornnipa ส 24 ส.ค. 2019 10:10 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
3
22
ส 24 ส.ค. 2019 9:13 pm โดย EyePornnipa
งานประจำวันที่ 24 สิงหาคม 2562
โดย jirawoot ส 24 ส.ค. 2019 10:03 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
1
4
ส 24 ส.ค. 2019 7:24 pm โดย jirawoot
งานประจำวันที่ 24 สิงหาคม 2562
โดย aninthana ส 24 ส.ค. 2019 9:50 am บอร์ด M092 - อนินธนา บุญยัง
2
22
ส 24 ส.ค. 2019 6:01 pm โดย aninthana
เขียนรายละเอียดของคำถาม
โดย พิ๊แบงค์ซ๊า ศ 23 ส.ค. 2019 11:03 pm บอร์ด Programming - PHP
0
8
ศ 23 ส.ค. 2019 11:03 pm โดย พิ๊แบงค์ซ๊า
ประเภทหน้ารายงานงบการเงิน
โดย EyePornnipa ศ 23 ส.ค. 2019 6:30 pm บอร์ด M089 - นางสาวพรนิภา ราชธานี
1
11
ส 24 ส.ค. 2019 2:10 pm โดย EyePornnipa
Android Q ได้ชื่อใหม่แล้ว ไม่ใช่ชื่อขนม แต่เป็น "Android 10" มีเปลี่ยนโลโก้ด้วย
โดย aninthana ศ 23 ส.ค. 2019 5:49 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
0
13
ศ 23 ส.ค. 2019 5:49 pm โดย aninthana
สอบถาม ถ้าลงไพทอน เวอร์ชั่นใหม่ เดิมใช้เวอร์ชั่นเก่าอยู่ จะเป็นยังไงครับ
โดย chatee supasand ศ 23 ส.ค. 2019 5:49 pm บอร์ด Programming - C/C++ & java & Python
1
20
ศ 23 ส.ค. 2019 5:52 pm โดย tatiya
ดีไซต์ใหม่ Google Play Store เน้นสีขาว
โดย jamepiyawat ศ 23 ส.ค. 2019 5:48 pm บอร์ด Share Knowledge
0
9
ศ 23 ส.ค. 2019 5:48 pm โดย jamepiyawat
วีธีการดาวน์โหลดวีดีโอด้วยลิ้ง url โดยการใช้ requests
โดย jirawoot ศ 23 ส.ค. 2019 5:46 pm บอร์ด Python Knowledge
0
19
ศ 23 ส.ค. 2019 5:46 pm โดย jirawoot
ฟีเจอร์ Template MZC_
โดย Patipat ศ 23 ส.ค. 2019 4:59 pm บอร์ด M088 - ปฏิภัทร สารธรรม
1
11
ศ 23 ส.ค. 2019 5:12 pm โดย Patipat