Java Programming 6: Relational Operators & Logical Operators

person Myat Min Soefolder_openJava Programmingaccess_time June 6, 2016

Relational Operators & Logical Operators

Relational Operator ဆိုတာကတော့ ဆုံးဖြတ်ချက်တွေချတဲ့အခါမှာ သုံးပါတယ်။ ဘာဖြစ်ရင် ဘာလုပ်မလဲ ဆိုတာ Program တွေရဲ့ 99% မှာအသုံးပြုပါတယ်။ ဥပမာ ATM စက်မှာ ထုတ်မဲ့ amount က ဘယ်လောက်ဆိုရင် ဘယ်လောက်တန် အရွက်ဘယ်လောက်ထုတ်မလဲဆိုပြီး တွက်တဲ့အခါမျိုးပါ amount ရယ် အတန်ရယ်ပေါ်မူတည်ပြီး တွက်ပြီးထုတ်ပေးရပါတယ်။

Tutorial 5 ဆိုပြီး Class အသစ်ယူလိုက်ပါ။

main method ထဲမှာ အောက်ပါအတိုင်း boolean variable တစ်ခုကြေငြာကြည့်ပါ။ System.out.print နဲ့ bool variable ကိုထုတ်ကြည့်ပါ။

boolean bool = 3 > 5;
System.out.println(bool);

Run ကြည့်လိုက်ရင် false ဆိုပြီးပေါ်နေတာတွေ့ရပါမယ်။ 3 > 5 ဆိုတာ မှားနေတဲ့အတွက်။ ၃ က ၅ ထက်မကြီးတဲ့ အတွက် false ဆိုတာထွက်လာတာပဲဖြစ်ပါတယ်။ ဒီမှာအသုံးပြုတဲ့ >, greater than sign ကို relation operator လို့ခေါ်ပါတယ်။ java မှာ relational operator ၆ မျိုးရှိပါတယ်။

1. ဂဏန်းနှစ်ခု ညီလားစစ်ချင်ရင် == ကိုသုံးပါတယ်။ 3==3 က true ပါ။ 2==3 က false ပါ။
2. ဂဏန်းနှစ်ခု မညီဘူးလားစစ်ချစ်ရင် != ကိုသုံးပါတယ်။ 2!=3 က true ပါ။ 3!=3 က false ပါ။
3. ပထမဂဏန်းက ဒုတိယဂဏန်းထက်ကြီးလား စစ်ချင်ရင် > ကိုသုံးပါတယ်။ 3 > 2 က true ပါ။ 2 > 3 က false ပါ။
4. ပထမဂဏန်းက ဒုတိယဂဏန်းထက်သေးလား စစ်ချင်ရင် < ကိုသုံးပါတယ်။ 2 < 3 က true ပါ။ 3 < 2 က false ပါ။ 5. ပထမဂဏန်းက ဒုတိယဂဏန်းထက် ကြီးလားညီလားစစ်ချင်ရင် >= ကိုသုံးပါတယ်။ 3 >= 3 က true ပါ။ 3 >= 2 က true ပါ။ 3 >= 4 က false ပါ။
6. ပထမဂဏန်းက ဒုတိယဂဏန်းထက် သေးလားညီလားစစ်ချင်ရင် <= ကိုသုံးပါတယ်။ 3 <= 3 က true ပါ။ 3 <= 4 က true ပါ။ 3 <= 2 က false ပါ။ if

if ကို condition စစ်တဲ့နေရာမှာသုံးပါတယ်။ သူ့ကိုအသုံးပြုပုံကတော့ အောက်ပါအတိုင်းပါ။

if(condition) {
	System.out.print("True");
}

condition က boolean value တစ်ခုပါ။ true ဆိုရင် {} ထဲက code တွေ အလုပ်လုပ်ပါတယ်။ false ဆိုရင် {} ထဲက code တွေကို ကျော်သွားပါတယ်။ စမ်းသပ်ကြည့်ရအောင်။ Scanner Object တစ်ခုဆောက်ပါ။ int mark ထဲကို scanner ကနေ input တောင်းပြီး integer value တစ်ခုထည့်ပါ။ Scanner ကို import လုပ်ဖို့မမေ့ပါနဲ့။ code အပြည့်အစုံဆို အောက်ပါအတိုင်းဖြစ်သွားပါလိမ့်မယ်။
package tutorial;

import java.util.Scanner;

public class Tutorial5 {

    public static void main(String[] args) {
        boolean bool = 3 > 5;
        System.out.println(bool);

        Scanner scanner = new Scanner(System.in);
        int mark = scanner.nextInt();
}

အောက်မှာ if နဲ့ condition စစ်ပြီး output ထုတ်ပါမယ်။ mark က 100 ဆိုရင် System.out.println ကိုအသုံးပြုပြီး Excellent လို့ထုတ်ပါမယ်။
if(mark == 100) {
	System.out.println("Excellent");
}

run ကြည့်ပါ input ထည့်ကြည့်ပါ။ 100 ထည့်မှ Excellent ဆိုတာထွက်လာပါမယ်။ ကျန်တဲ့ ဂဏန်းဆို ဘာမှပေါ်လာမှာမဟုတ်ပါဘူး။ ဒီနေရာမှာ == ဆိုတဲ့ relational operator ကိုအသုံးပြုထားတာတွေ့ရပါမယ်။ mark == 100 ဖြစ်မှ Excellent ဆိုတာထွက်လာမှာပါ။ mark က user input ပေးတဲ့ int value တစ်ခုပါ။ user input က 100 ဖြစ်သွားတဲ့အခါ mark က 100 ဖြစ်တာကြောင့် {} ထဲက System.out.println(“Excellent”); အလုပ်လုပ်သွားတာပဲဖြစ်ပါတယ်။

else if

else if ဆိုတာကတော့ if ကို နောက်တစ်ဆင့်ထပ်စစ်တာပဲဖြစ်ပါတယ်။ အောက်ကအတိုင်းဆက်ရေးလိုက်ပါ။

package tutorial;

import java.util.Scanner;

public class Tutorial5 {

    public static void main(String[] args) {
        boolean bool = 3 > 5;
        System.out.println(bool);

        Scanner scanner = new Scanner(System.in);
        int mark = scanner.nextInt();

        if (mark == 100) {
            System.out.println("Excellent.");
        } else if (mark > 80) {
            System.out.println("Good");
        }
}

Run ကြည့်ပြီး input ထည့်ကြည့်ပါ။ ကိုယ်ထည့်လိုက်တဲ့ mark က 100 ဆိုရင် Excellent လို့ထွက်လာပါလိမ့်မယ်။ ကိုယ်ထည့်လိုက်တဲ့ mark က 80 ကျော်ရင် Good လို့ထွက်လာပါလိမ့်မယ်။ ဒီမှာမေးစရာတစ်ခုရှိတာက 100 ကလဲ 80 ကျော်တဲ့အတွက် Good လို့မထွက်ဘူးလားဆိုတာပါပဲ။ 100 > 80 က true ဆိုတာမှန်ပါတယ်။ ဒါပေမဲ့ else if ရဲ့သဘောတရားအရ အပေါ်က statement false ဖြစ်မှ အောက်ကို ဆက်အလုပ်လုပ်တာပဲဖြစ်ပါတယ်။ အပေါ်မှာ mark က 100 နဲ့ညီသွားတာနဲ့ if statement တစ်ခုလုံးကို ကျော်သွားပါတော့တယ်။ else if နေရာမှာ else ကိုဖြုတ်ပြီး if တစ်ခုထဲထားခဲ့ရင်တော့ 100 ထည့်လိုက်ရင် Excellent နဲ့ Good ဆိုပြီး နှစ်မျိုးလုံးထွက်လာမှာပဲဖြစ်ပါတယ်။ နောက်ထပ် else if နဲ့ထပ်စစ်ပါ။ 40 ကျော်ရင် Fair လို့ထုတ်ပေးပါ။
package tutorial;

import java.util.Scanner;

public class Tutorial5 {

    public static void main(String[] args) {
        boolean bool = 3 > 5;
        System.out.println(bool);

        Scanner scanner = new Scanner(System.in);
        int mark = scanner.nextInt();

        if (mark == 100) {
            System.out.println("Excellent.");
        } else if (mark > 80) {
            System.out.println("Good");
        } else if (mark > 40) {
            System.out.println("Fair");
        }
}

else

else ဆိုတာကတော့ condition တစ်ခုကိုစစ်တဲ့အခါ နောက်ဆုံး အပေါ်က တစ်ခုမှ true မဟုတ်ရင်လုပ်ရမှာကိုဖော်ပြတာဖြစ်ပါတယ်။ အောက်ဆုံးမှာ ဒီအတိုင်းထည့်ပေးလိုက်ပါ။

public class Tutorial5 {

    public static void main(String[] args) {
        boolean bool = 3 > 5;
        System.out.println(bool);

        Scanner scanner = new Scanner(System.in);
        int mark = scanner.nextInt();

        if (mark == 100) {
            System.out.println("Excellent.");
        } else if (mark > 80) {
            System.out.println("Good");
        } else if (mark > 40) {
            System.out.println("Fair");
        } else {
            System.out.println("Fail");
        }
}

run ကြည့်ပါ mark ကို input ပေးတဲ့အခါ 100 လဲမဟုတ်။ ၈၀ လဲမကျော် ၄၀ လဲမကျော်ရင် နောက်ဆုံး else ထဲက System.out.println(“Fail”); ဆိုတဲ့ code ကိုအလုပ်လုပ်သွားမှာပဲဖြစ်ပါတယ်။

Nested if

if condition ထဲမှာ condition ထပ်စစ်တာကို nested if လို့ခေါ်ပါတယ်။ အောက်ကအတိုင်းထပ်ရေးပြီး run ကြည့်ပါ။

        int x = scanner.nextInt();
        int y = scanner.nextInt();

        if (x == 30) {
            if (y == 10) {
                System.out.print("x is 30 and y is 10");
            }
        }

int x နဲ့ int y ကို scanner နဲ့ဖတ်ပြီးထည့်လိုက်ပါတယ်။ x က 30 ဆိုရင် အထဲက code ကိုဆက်အလုပ်လုပ်ပါတယ်။ y ကိုထပ်စစ်ပါတယ်။ y က 10 ဆိုရင် System.out.println ဆိုတဲ့ code အလုပ်လုပ်ပါတယ်။ ဒါကြောင့် ဒီနေရာမှာ နှစ်ခုလုံး true ဖြစ်မှ System.out.print{} အလုပ်လုပ်မှာဖြစ်ပါတယ်။ နှစ်ခုလုံး true ဖြစ်ဖို့ x နဲ့ y က 30 နဲ့ 10 အသီးသီးဖြစ်ဖို့လိုပါတယ်။ if ထဲမှာ နောက် if တစ်ခုနဲ့ ထပ်စစ်တာကို nested if လို့ခေါ်တာပါ။

Logical Operators

Logical Operators ကတော့ ၁၀ တန်း Physics မှာသင်ခဲ့ရတဲ့ Logic Gates တွေပါပဲ AND OR NAND NOR NOT ပါ။ ဒီထဲမှာမှ AND OR NOT သုံးခုကအရေးကြီးဆုံးဖြစ်ပါတယ်။

AND

Java မှာ AND Logical Operators အတွက် && ကိုသုံးပါတယ်။ AND ဆိုတာကတော့ boolean value နှစ်ခုမှာ နှစ်ခုလုံး မှန်မှ true ဖြစ်တာဖြစ်ပါတယ်။

true && true = true
true && false = false
false && true = false
false && false = false

OR

Java မှာ OR Logical Operator အတွက် || ကိုသုံးပါတယ်။ OR ကတော့ boolean value နှစ်ခုထဲက တစ်ခုမှန်ရင် true ပါ။

true || true = true
true || false = true
false || true = true
false || false = false

NOT

Java မှာ not အတွက် ! ကိုသုံးပါတယ်။ ! ကတော့ ပြောင်းပြန်လုပ်လိုက်တာပဲဖြစ်ပါတယ်။ ရှေ့မှာရေးရပါတယ်။

!true = false
!false = true

ကဲစမ်းကြည့်ရအောင် အောက်မှာ ဒီအတိုင်းဆက်ရေးလိုက်ပါ။

        if (x == 30 && y == 10) {
            System.out.println("x is 30 and y is 10");
        }

        if (x == 30 || y == 10) {
            System.out.println("x is 30 or y is 10");
        }

Run ကြည့်ပါ။ ပထမတစ်ခုမှာ x က 30 ဖြစ်ပြီး y က 10 ဖြစ်မှ output message ထွက်လာပါလိမ့်မယ်။ ဒုတိယတစ်ခုမှာတော့ x က 30 ဒါမှမဟုတ် y က 10 ဖြစ်ရင် output message ထွက်လာပါလိမ့်မယ်။

switch

switch ဆိုတာကတော့ if, else if, else if, …. , else နဲ့ဆင်ပါတယ်။ ဒါပေမဲ့ တန်ဖိုးအတိအကျ ထည့်ပေးရပါမယ်။ အောက်ကအတိုင်း စမ်းကြည့်ပါ။

		switch (mark) {
			case 100:
				System.out.println("Excellent.");
			case 40:
				System.out.println("Lucky");
			default:
				System.out.println("your mark is not 100 or 40");
		}

switch syntax ကတော့ switch နောက်မှာ variable တစ်ခုထည့်ပေးရပါတယ်။ ပြီးသွားရင် {} ထဲမှာ case value: ဆိုပြီး colon နဲ့ value ရေးပါတယ်။ အောက်မှာ လုပ်ရမဲ့ အလုပ်တွေရေးပါတယ်။ နောက် case value: ဆိုပြီးနောက်တစ်ခုထပ်ရေးပါတယ်။ နောက်ဆုံး default: ဆိုပြီး default case တစ်ခုရေးပါတယ်။
mark ရဲ့ value နဲ့ case နောက်က value နဲ့ တူညီရင် case အောက်က code တွေအလုပ်လုပ်ပါတယ်။ ဘယ် case နဲ့မှမတူရင်တော့ default case ကိုအလုပ်လုပ်ပါတယ်။ ဒီတစ်ခေါက် သင်ခန်းစာကနည်းနည်းရှည်သွားတဲ့အတွက် syntax တွေမှတ်မိအောင် အပြန်ပြန်အလှန်လှန်ရေးကြည့်ပါ။

Comment

  1. Thanks a lot 🙂 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>