1. Booleanประเภท

ดังที่เราได้เห็นแล้ว Java มีif-elseคำสั่ง ที่มีประโยชน์อย่างยิ่ง มันดำเนินการหนึ่งกลุ่มของคำสั่งถ้าเงื่อนไขในวงเล็บเป็นจริงและกลุ่มที่สองของคำสั่งถ้าเงื่อนไขเป็นเท็จ

เพื่อความสะดวกเมื่อทำงานกับนิพจน์ที่สามารถเป็นจริงหรือเท็จ ผู้สร้างของ Java ได้เพิ่มbooleanชนิด พิเศษ คุณสมบัติหลักคือตัวแปรประเภทนี้สามารถรับค่าได้เพียงสองค่าเท่านั้น: trueและfalse

เป็นไปไม่ได้ที่จะกำหนดค่าอื่นใดให้กับbooleanตัวแปร คอมไพเลอร์ไม่อนุญาต

และทำไมเราถึงต้องการประเภทดั้งเดิมเช่นนี้?

สิ่งที่ดีคือคุณสามารถใช้มันเพื่อเก็บค่าของนิพจน์เชิงตรรกะ ตัวอย่าง:

รหัส คำอธิบาย
boolean isOK = true;
ตัวแปร บูลีนisOKมีค่าtrue
boolean hasError = false;
ตัวแปร บูลีนhasErrorมีค่าfalse
int age = 70;
boolean isSenior = (age > 65);
ตัวแปร บูลีนisSeniorมีค่าtrue
int record = 612;
int value = 615;
boolean hasNewRecord = (value > record);
ตัวแปร บูลีนhasNewRecordมีค่าtrue
int min = 0;
int max = 100;
int temperature = -20;
boolean isIce = (temperature < min);
boolean isSteam = (temperature > max);

ตัวแปร บูลีนisIceมีค่าtrue

ตัวแปร บูลีนisSteamมีค่าfalse


2. การใช้ตัวแปรบูลีน

ตัวแปรบูลีนจะมีประโยชน์เพียงเล็กน้อยหากสามารถเก็บผลลัพธ์ของนิพจน์เท่านั้น ประเด็นคือคุณสามารถใช้มันได้ ที่ไหน? ทุกที่ที่คุณสามารถเขียนนิพจน์เชิงตรรกะ

ตัวอย่างเช่น คุณสามารถใช้ตัวแปรบูลีนในเงื่อนไขของifคำสั่ง:

รหัส เทียบเท่า
int age = 70;
boolean isSenior = (age > 65);
if (isSenior)
   System.out.println("Time to retire");
int age = 70;
if (age > 65)
   System.out.println("Time to retire");

ในตัวอย่างนี้ มีประโยชน์เล็กน้อยจากการแทนที่นี้ แต่เมื่อโปรแกรมมีขนาดใหญ่ขึ้น เงื่อนไขของโปรแกรมจะซับซ้อนมากขึ้น คุณจะมั่นใจในสิ่งนี้ในอนาคตอันใกล้นี้



3. ตัวดำเนินการเปรียบเทียบ

ใน Java เช่นเดียวกับภาษาการเขียนโปรแกรมอื่น ๆ มักจะจำเป็นต้องเปรียบเทียบตัวแปรกับตัวแปรอื่น และ Java มีเพียงตัวดำเนินการที่คุณต้องการทำการเปรียบเทียบ:

โอเปอเรเตอร์ คำอธิบาย ตัวอย่าง
< น้อยกว่า a < 10
> มากกว่า b > a
<= น้อยกว่าหรือเท่ากับ a <= 10
>= มากกว่าหรือเท่ากับ speed >= max
== เท่ากับ age == 18
!= ไม่เท่ากัน time != 0

ตัวดำเนินการข้างต้นใช้เพื่อสร้างนิพจน์เชิงตรรกะ ผลลัพธ์สามารถเก็บไว้ในbooleanตัวแปรหรือใช้เป็นเงื่อนไขของifคำสั่ง

ประเด็นสำคัญข้อที่ 1:

ตัวดำเนินการที่ประกอบด้วยอักขระสองตัวไม่สามารถแยกออกจากกันได้

กล่าวอีกนัยหนึ่ง โค้ดเช่นนี้จะไม่คอมไพล์:

a < = 10
speed > = max
age = = 18
time ! = 0
ประเด็นสำคัญข้อที่ 2:

โปรดทราบว่าไม่มี=>หรือ=<ตัวดำเนินการ เฉพาะตัวดำเนินการ<=และ >=หากคุณเขียนโค้ดของคุณจะไม่ถูกคอมไพล์a=< 3

ประเด็นสำคัญข้อที่ 3:

ใน Java คุณไม่สามารถเขียนนิพจน์เช่น. ท้ายที่สุด นิพจน์จะถูกประเมินเป็นหรือ และคุณไม่สามารถทำการเปรียบเทียบได้(ประเภทต่างกัน) อย่างน้อยก็ใน Java18 < age < 6518 < agetruefalsetrue < 65

ทำอะไรได้บ้าง? คุณจะพบคำตอบสำหรับคำถามนี้ในบทเรียนถัดไป