บทที่ 2 ชนิดของตัวแปรและตัวดําเนินการ หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
55
การเพิ่มคาอีก 1 ใหกับตัวแปร n หลังจากใชคาตัวแปรแลว และถานําหนาตัวแปร หมายถึงใหมีการเพิ่ม
คาตัวแปรอีก 1 กอนที่ คาตัวแปรจะถูกใช เชน ถา n มีคา 5 แลว
กําหนดให n = 5 ;
x = n++ ; // x จะมีคา เทากับ 5 แต n = 6
กําหนดให n = 5;
x = ++n ; // x จะมีคาเทากับ 6 และ n = 6
และทั้งสองกรณี n จะมีคาเปน 6 ตัวดําเนินการเพิ่มคาและลดคาใชกับตัวแปรเทานั้น ไมสามารถ
ใชกับนิพจนได เชน (i+j)++
การเพิ่มคาหรือลดคาโดยใชตัวดําเนินการ ++ หรือ -- ตามหลังหรือนําหนาตัวแปร จะใหผล
เหมือนกันคือคาของตัวแปรเทากัน ดังเชน
if (ch == ‘A’)
x++ ;
หรือ if (ch == ‘A’)
++x;
นั่นคือ x = x + 1 => x++ หรือ ++x
x = x - 1 => x-- หรือ --x
ตัวอยาง โปรแกรมตัวดําเนินการเพิ่มคา หรือลดคา
class IncDecOperator{
public static void main(String args[]) {
int x =1 , y=1;
int a , b ;
x++ ; ++y;
System.out.println(x + "," + y);
x-- ; --y ;
System.out.println(x + "," + y);
x =1; y =1;
a = x++ ;
b= ++y;
System.out.println(a + "," + b);
a= x-- ;
b= --y;
System.out.println(a + "," + b);
}
}
OUTPUT
2,2
1,1
1,2
2,1
23.
บทที่ 2 ชนิดของตัวแปรและตัวดําเนินการ หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
56
3. ตัวดําเนินการระดับบิต(bitwise operator)
ตัวดําเนินการบิตไวสจะกระทําระหวางบิตตอบิตของ ขอมูลชนิด char short int และ long
ที่มีเครื่องหมายหรือไมมีเครื่องหมาย(Signed or unsigned) ผลลัพธที่ไดมีคาเปน true หรือ false เทานั้น
ตัวดําเนินการ ความหมาย ตัวอยางนิพจน
& บิตไวสแอน (and) ANS = A & B
| บิตไวสอินคลูซีฟออ (inclusive or) ANS = A | B
^ บิตไวสเอกซคลูซีฟออ (exclusive or) ANS = A ^ B
~ คอมพลีเมนต(complement) ANS = ~A
<< เลฟทชีฟท(left shift) ANS = A << 2
>> ไรทชีฟท (right shift) ANS = A >> 4
>>> unsigned right shift (zero-filled right shift) ANS = A >>>3
&= bitwise AND assignment ANS &= A
|= bitwise OR assignment ANS |= A
^= bitswise EXCLUSIVE OR assignment ANS ^= A
>>= shift right assignment ANS >>= A
<<= shift left assignment ANS <<= A
>>>= shift right zero fill assignment ANS >>>= A
ตารางที่ 2.4 แสดงตัวดําเนินการบิตไวส โดยที่ A B เปนตัวแปรชนิด byte
a b a&b a|b ~ a^b
0 0 0 0 1 0
1 0 0 1 0 1
0 1 0 1 1 1
1 1 1 1 0 0
ตารางที่ 2.5 แสดงตารางคาความเปนจริงของตัวดําเนินการบิตไวส
ตัวอยาง 1010 | 1001 = 1011
1 0 1 0
|
1 0 0 1
1 0 1 1
บทที่ 2 ชนิดของตัวแปรและตัวดําเนินการ หนาที่
เอกสารประกอบการสอน 305272 การเขียนโปรแกรมคอมพิวเตอรขั้นสูง
อ.สุรางคนา ระวังยศ
65
3. ใหนิสิตทําการเติมคาลงในตารางตอไปนี้ใหสมบูรณ
การประกาศและกําหนดคาเริ่มตน
int a = 1, b= 2, c = 3 ;
double x = 1.0 ;
นิพจน นิพจนเทียบเทา คา
a > b && c < b
a + b < ! c + c
a - x || b * c && b / a
a< b | a < c
c > b & x >= a
a < b & a++ < 2 a=
b=
b>c | ++c > 3 b=
c=
4. จงหาผลลัพธจากนิพจนตอไปนี้
1) var = 3 ;
var &= 5 var มีคาเทาไหร
2) ถา var = 0 ;
แลว var |= 4 ; var มีคาเทาไหร
3) ถา var = 0 ;
var ^= 7 ;
var ^= 127 ; แลว var มีคาเทาไหร
4) ถา var มีคา 0000000000000111
~var มีคาเทาไหร
5) ถา var = 1 ;
แลว var <<= 3 ; var มีคาเทาไหร
var << 1 ; var มีคาเทาไหร
var >>= 2 ; var มีคาเทาไหร
var >>>= 3 ; var มีคาเทาไหร