7. ตัวอย่าง ถ้าหากมีการประกาศตัวแปรดังต่อไปนี้
Byte a=4 , b=7
จงหาค่าของ a & b, a | b, a ^b และ b >> 1
วิธีทา การประกาศตัวแปรดังกล่าวจะทาให้ค่าของ a และ b เป็นดังนี้
A = 0000 0100
B = 0000 0111
ดังนั้น a & b หาได้จาก 0000 0100 AND กันตรงๆแบบบิตต่อบิต
0000 0111
0000 0100 มีค่าเท่ากับ 4
A | b หาได้จาก 0000 0100
0000 0111
0000 0111 มีค่าเท่ากับ 7
10. จากตารางจะเห็นว่า ลงเล็บจะมีลาดับความสาคัญสูงสุด ส่วนตัวดาเนินการที่ใช้
สาหรับกาหนดค่าจะมีลาดับความสาคัญต่าสุด ถ้าหากมีตัวดาเนินการที่มีลาดับ
ความสาคัญเท่ากันอยู่ในนิพจน์เดียวกัน ลาดับความสาคัญจะเรียงจากซ้ายไปขวา ใน
การเขียนโปรแกรมถ้าหากมีการประมวลผลซับซ้อนผู้เขียนโปรแกรมควรใส่วงเล็บให้
ประมวลผลก่อน เพื่อป้องกันการสับสน
ตัวอย่าง นิพจน์ต่อไปนี้เป็นการใช้ตัวดาเนินการหลายๆ ตัวในนิพจน์เดียวกัน
นิพจน์ การทางาน
X > y && a < b ตรวจสอบว่า x มากว่า yและ a น้อยกว่า b จริงหรือไม่
X == y | | x == z ตรวจสอบว่า x เท่ากับ y หรือ x เท่ากับ z จริงหรือไม่
!( x > y ) ตรวจสอบว่า x มากกว่า y ไม่จริงใช่หรือไม่
18 / 3*4 ตัวดาเนินการอยู่ลาดับเดียวกันจะเรียงจากซ้ายไปขวา
ได้ค่าเป็น 24
18 % 3*4 ตัวดาเนินการอยู่ลาดับเดียวกันจะเรียงจากซ้ายไปขวา
ได้ค่าเป็น 0
( 15+9 ) / ( 3+1 )*2 จะคานวณ 24 / 4*2 ได้ค่าเป็น 12
11. 3.2การเลือกทาแบบทางเดียว (if statement)
ในภาษาจาวาจะใช้คาสั่ง if เลือกทาแบบทางเดียวเพื่อจะตรวจสอบว่าชุดคาสั่งที่ตามมาจะ
ทาหรือไม่ ในการทางานของคาสั่งคอมพิวเตอร์จะตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขเป็น
จริงจะทาคาสั่งหรือสเตตเมนต์ที่ตามหลังหรือเป็นสเตตเมนต์รวมที่อยู่ในเครื่องหมาย { }
แต่ถ้าเงื่อนไขเป็นเท็จคอมพิวเตอร์จะกระโดดข้ามคาสั่งหรือสเตตเมนต์ตามมาและไปทา
คาสั่งหรือสเตตเมนต์ต่อไป รูปแบบคาสั่งเป็นดังต่อไปนี้
รูปแบบ
If (condition) {action statement}
โดยการตรวจสอบเงื่อนไขจะเป็นการกระทาแบบบูลีน ผลลัพธ์ที่ได้จะเป็นจริงหรือเท็จ
เท่านั้นถ้าหากมีการใช้ตัวดาเนินการจะใช้ตัวดาเนินการที่ให้ผลลัพธ์เป็นแบบบูลีน สาหรับ
การทางานของคาสั่ง if สารถเขียนเป็นผังงานได้ดังนี้
12. ตรวจสอบ เท็จ
เงื่อนไข
จริง
สเตตเมนต์
ตัวอย่าง โปรแกรมต่อไปนี้จะตรวจสอบว่า x มากกว่า y จริงหรือไม่ ถ้าหาก x มากกว่า y จริง
โปรแกรมจะทาคาสั่งต่อมา
13. ตัวอย่าง ถ้าหากการเขียนโปรกรมตรวจสอบว่า x มากกว่า y และน้อย
กว่า 10 หรือไม่ ถ้าเป็นจริงให้แสดงตัวเลข x ออกมาจะสามารถเขียนได้
ดังนี้
ตัวอย่าง ถ้าหากตัวแปร mark เก็บคะแนน และต้องการตรวจสอบว่าถ้าคะแนน
มากกว่า 80 และน้อยกว่าหรือเท่ากับ 100 ให้ได้เกรด A จะเขียนคาสั่ง if ได้เป็น
ในการตรวจสอบเงื่อนไขนั้นตัวแปรที่นามาเปรียบเทียบจะต้องเป็นข้อมูลประเภทเดียวกัน
ตัวอย่าง เช่น
ถ้าให้ ch เป็น char ให้ num และ mark เป็น int การตรวจสอบเงื่อนไขอาจเขียนได้ดังนี้
14. ในการตรวจสอบเงื่อนไขนั้นตัวแปรที่นามาเปรียบเทียบจะต้องเป็นข้อมูลประเภทเดียวกัน
ตัวอย่าง เช่น ถ้าให้ ch เป็น char ให้ num และ mark เป็น int การตรวจสอบเงื่อนไขอาจเขียน
ได้ดังนี้
ตัวอักขระสองตัวสามารถนามาเปรียบเทียบกันได้เช่นกัน เนื่องจากภาจาวาจะเก็บตัวอักขระใน
รูปของรหัสยูนิโค้ด (Unicode) เมื่อมีการเปรียบเทียบภาษาจาวาจะนาเอารหัสยูนิโค้ด ซึ่งอยู่ใน
รูปของเลขจานวนเต็มมาเปรียบเทียบกัน อย่างเช่น ตัว A จะมาก่อนตัว B เนื่องจากรหัสของตัว
A คือ 65 ส่วนรหัสของตัว B คือ 66 ดังนั้น ถ้าหากเขียนนิพจน์เป็น A<B จะได้ค่าเป็นจริงเสมอ
และถ้าหากมีการเขียนสเตตเมนต์ต่อไปนี้
39. โปรแกรมที่ 3.19 โปรแกรมเป็นตัวอย่างการใช้คาสั่งลูป do while
พิมพ์ตัวเลขตั้งแต่ 1 ถึง 10
จากโปรแกรมที่ 3.19 ให้ลองเปลี่ยนการตรวจสอบเงื่อนไข จาก ++counter
เป็น counter++ แล้วสังเกตสิ่งที่เกิดขึ้นจากการรันโปรแกรม
40. 3.9 ลูปซ้อนลูป (Nested Loops)
ในการเขียนโปรแกรมสามารถนาคาสั่งลูปแบบต่างๆ ให้มาทางานซ้อนกันได้
เรียกว่าลูปแบบซ้อนลูป ดังตัวอย่างต่อไปนี้
Public class Nestedloop1 {
Public static void main(String[ ] args)
{
for(int i = 1; i < = 3; i ++)
for(int j = 1; j < = 3; j ++)
System.out.print(j + ‚ ‚);
}
}
จากตัวอย่างโปรแกรมลูปแรกจะเป็นลูปของตัวแปร I โดยภายในลูปจะทาลูปของตัวแปร j
จานวน 3 ครั้ง ทาให้การทางาน System.out.print (j+ ‚ ‚) มีการทางานทั้งหมด 9 ครั้ง
41. 3.10 คาสั่ง break และ continue
จากตัวอย่างทาซ้าแบบ for ได้ทดลองคาสั่ง break มาบ้างแล้ว โดยคาสั่งนี้สามารถใช้
งานร่วมกับ while , for , do/while หรือ switch ได้ สาหรับคาสั่งที่ทางานตรงกันข้าม
กับ คาสั่ง break คือคาสั่ง continue ซึ่งสามารถใช้ได้ใน while , for หรือ do/while ได้
เช่นกัน เมื่อโปรแกรมทางานมาถึงคาสั่ง continue จะทาลูปต่อไปโดยไม่ทาสเตตเมนต์
ที่ตามหลัง continue โปรแกรมที่ 3.23 แสดงตัวอย่างการใช้ break โดยถ้าเงื่อนไขของ
if เป็นจริงจะออกนอกลูปทันที
โปรแกรมที่ 3.23
โปรแกรมนี้จะสร้างลูปแบบ for ขึ้นมาทางานแบบวนซ้าโดยนับตัวแปร i ตั้งแต่ 0
ไปจนถึง 10 ในการวนซ้าแต่ละครั้งจะตรวจสอบเงื่อนไขของ if ว่าตัวแปร I ยก
กาลังสองมีค่ามากกว่า num จริงหรือไม่ ถ้าเป็นจริงจะออกนอกลูป
42. Public class BrekDemo {
Public static void main(String[ ] argd){
int num = 100;
for(int i = 0; i < num; i ++){
if (i*i > = num)break; // ถ้า i*i มากกว่า 100 ให้ออกนอกลูป
System.out.print(i+ ‚ ‚); //แสดงตัวเลข
}
System.out.print(‚Loop complete. ‚);
}
}