Java Conditional Statements
Tags: java, beginners
Published: 2021-07-05 07:32:38

Conditional statement ဆိုတာက program အခြေအနေတွေကိုစစ်ဆေးပြီး မှန်ရင်ဘယ်ဟာလုပ် မှားရင်ဘယ်ဟာလုပ် ဆိုပြီး program အသွားအလာကို ထိန်းချုပ်ပေးတဲ့ statement ဖြစ်ပါတယ်။ တနည်းအားဖြင့် အခြေအနေမှန်မမှန် (Boolean တန်ဖိုး true / false) ကို စစ်ဆေးပေးခြင်းဖြစ်ပါတယ်။ Conditional statements တွေကို ဘယ်လိုနေရာမှာသုံးလဲဆိုတော့ နံပါတ်တစ်ခုကို စုံကိန်းလား မကိန်းလား ခွဲတာမျိုးတို့ user ကဘာလုပ်ရင် program မှာဘာဖြစ်မယ်ဆိုတာ မျိုးတို့ မှာ အသုံးပြုပါတယ်။
Conditional statement အမျိုးအစားတွေကတော့ 
1. if statement
2. switch statement တို့ပဲဖြစ်ပါတယ်။

### if Statement 

if statement ကိုအောက်ပါအတိုင်းထက်ခွဲထားပါတယ် - 
* if
* if/else
* if/else if/else
* nested if

ရိုးရိုး if statement ကတော့ if ထဲမှာရှိတဲ့ condition က true ဖြစ်ခဲ့ရင် if block ထဲမှာရှိတဲ့ operation ကိုအလုပ်လုပ်ပါတယ်။

Syntax:
```java 
if (condition) {
//code to be executed
} 
```
Example:
{% replit @HeinKhantZaw/ifExample %}

အထက်ပါ example မှာဆို age ဆိုတဲ့ integer variable ကို 20 တန်ဖိုးပေးထားပါတယ်။ နောက်တစ်လိုင်းမှာ if condition ကိုမှန်မမှန် အရင်စစ်ပါတယ်။ ပထမ တစ်ခုမှာ မှန်တဲ့အတွက် if block ထဲက `System.out.print("Age is greater than 18");` ကိုအလုပ်လုပ်ပါတယ်။
အဲ့တော့ output မှာ Age is greater than 18 ဆိုပြီး ထွက်သွားတာကိုတွေ့ရပါမယ်။
တကယ်လို့ age ကို 18 ထက်ငယ်တဲ့တန်ဖိုးပေးပြီးပြန် run ကြည့်လိုက်ရင် if condition မှားသွားတဲ့အတွက် ဘာမှထွက်လာမှာမဟုတ်ပါဘူး။ 
အဲ့တော့ if statement ကို ကိုယ်လိုတဲ့ condition အတိုင်းမှန်ရင် အလုပ်တစ်ခုခုလုပ်စေလိုတဲ့အခါမျိုး မှာအသုံးပြုသင့်ပါတယ်။

#### if/else Statement 
if/else statement က if statement နဲ့ပုံစံဆင်တူပါတယ်။ မတူတာကတော့ if statement က မှန်ခဲ့ရင်ဘာအလုပ်လုပ်မလဲဆိုတာကိုပဲညွှန်ကြားနိုင်ပြီး မှားခဲ့ရင် ဘာလုပ်ရမလဲဆိုတာကို ညွှန်ကြားလို့မရပါဘူး။ အဲ့အတွက်ကြောင့် if-else statement မှာဆို condition မှန်ခဲ့ရင် if block ကအလုပ်လုပ်မှာဖြစ်ပြီး condition မှားခဲ့ရင်တော့ else block ကအလုပ်လုပ်မှာဖြစ်ပါတယ်။ 

Syntax: 
```java
if (condition) {
//code to be executed if condition is true
} else {
//code to be executed if condition is false
}
```
Example: 
{% replit @HeinKhantZaw/ifelseExample %}

အပေါ်က code example မှာဆိုရင် number variable မှာ 13 လို့တန်ဖိုး သတ်မှတ်ထားပြီး if-else condition မှာ number ကို ၂ နဲ့စားလို့ သုည ကြွင်းရင် စုံကိန်း မဟုတ်ခဲ့ရင် မကိန်းဆိုပြီးတော့ ထုတ်ပေးမှာဖြစ်ပါတယ်။ if ထဲမှာရှိတဲ့ condition က true ဖြစ်ခဲ့ရင် if block ထဲမှာရှိတဲ့ operation ကိုအလုပ်လုပ်ပြီးတော့ false ဖြစ်ခဲ့ရင် else block ထဲမှာရှိတဲ့ operation ကိုအလုပ်လုပ်ပါမယ်။
ဒီ example မှာ number = 13 ဆိုတော့ if ထဲက condition နဲ့မကိုက်တဲ့အတွက် else ထဲက `System.out.println("odd number");` ကို အလုပ် လုပ်သွားပါတယ်။

#### if/else if/else Statement 

if/else if/else statement ကတော့ ပထမ condition က false ဖြစ်ခဲ့ရင် ဒုတိယ condition ဆီသွားပါတယ် ဒုတိယ condition က true ဖြစ်ခဲ့ရင်တော့ အောက်မှာရှိတဲ့ condition တွေဆီဆက်မသွားတော့ပါဘူး။ တကယ်လို့ ဒုတိယ condition က false ဖြစ်ခဲ့ရင် တတိယ condition ရှိမရှိကြည့်ပြီး ရှိခဲ့ရင်ဆက်စစ်ပါမယ်။ တတိယ condition မရှိခဲ့ရင်တော့ else ရှိမရှိ ကြည့်ပြီး ရှိခဲ့ရင်တော့ else block ထဲက အလုပ်ကိုလုပ်ပါလိမ့်မယ်။ 

Syntax: 
```java
if (condition1) {  
//code to be executed if condition1 is true  
} else if (condition2) {  
//code to be executed if condition2 is true  
} else if (condition3) {  
//code to be executed if condition3 is true  
}  
//you can add else if as much as you can...  
else {  
//code to be executed if all the conditions are false  
} 
```
Example: 
{% replit @HeinKhantZaw/ifelseifelseExample %}

ဒီ program မှာဆိုရင်တော့ int variable mark မှာပေးထားတဲ့တန်ဖိုး အပေါ်မူတည်ပြီး ထုတ်ပေးမှာဖြစ်ပါတယ်။ mark = 65 ဖြစ်တဲ့အတွက် 2nd else if condition နဲ့ကိုက်ညီပြီး အဲ့ block ထဲကအလုပ်ကို လုပ်ဆောင်သွားမှာဖြစ်ပါတယ်။

#### Nested if Statement 
Nested if statement ဆိုတာကတော့ if block ထဲမှာရှိတဲ့ နောက်ထပ် if block တစ်ခုဖြစ်ပါတယ်။ အပြင်ဘက် if ရဲ့ condition က true ဖြစ်မှသာ အတွင်းဘက် if  ရဲ့ condition ဆီကိုရောက်မှာဖြစ်ပါတယ်။

Syntax: 
```java
if (condition1) {    
    //code to be executed    
    if (condition2) {  
        //code to be executed    
    }    
}
```
Example:
{% replit @HeinKhantZaw/nestedIf %}

ဒီမှာဆိုရင်တော့ age = 20 နဲ့ weight = 80 ဆိုတဲ့ int variable ၂ ခု ကြေညာထားပြီး ပထမ if condition မှာ age က ၁၈ နဲ့ အထက်ဖြစ်မဖြစ် (age>=18) ကိုစစ်ထားပါတယ်။ မှန်ခဲ့ရင်တော့ ဒုတိယ if condition ထဲမှာ weight က ၅၀ ထက်များမများ (weigh>50) ကို ထပ်စစ် ထားပြီး နှစ်ခုလုံး ကိုက်ညီမှသာ “You are eligible to donate blood” ဆိုတဲ့စာသားကို output ထုတ်ပေးမှာဖြစ်ပါတယ်။

### switch statement

Switch statement ဆိုတာကတော့ if/else if/else statement လိုဘဲ condition အများကြီးကို စစ်ဆေးနိုင်ဖို့အတွက်အသုံးပြုပါတယ်။ ဒါပေမယ့်  if/else if/else statement တွေမှာက ကျတော့ condition တွေကို ကိုယ်ကြိုက်သလိုရေးလို့ရပေမယ့် switch statement တွေမှာကတော့ variableရဲ့ value က caseထဲကတန်ဖိုးနဲ့တူမတူစစ်ပြီး operations တွေလုပ်ဆောင်ပေးတာမျိုးဖြစ်ပါတယ်။ switch ထဲမှာ ထည့်စစ်လို့ရတဲ့ data type တွေကတော့ byte, short, char, and int အစရှိတဲ့ primitive data types တွေရယ်၊ Enum နဲ့ String data type တွေထည့်စစ်လို့ရမှာဖြစ်ပြီး case ထဲမှာကတော့ switch ထဲမှာပါတဲ့ datatype အလိုက် value ကိုက်မကိုက်စစ်မယ့် တန်ဖိုးတွေ ရေးပေးရမှာဖြစ်ပါတယ်။ value ကိုက်ညီမယ်ဆိုရင်တော့ ကိုက်တဲ့ case  ထဲကအလုပ်ကိုလုပ်မှာဖြစ်ပါတယ်။ case ထဲကအလုပ်ကိုလုပ်ရင်း break keyword တွေ့ရင်တော့ switch statement ထဲကနေ ထွက်သွားမှာဖြစ်ပြီး break မရှိခဲ့ရင်တော့ အောက်မှာ ကျန်သေးတဲ့ case ထဲကအလုပ်တွေကိုပါ ဆက်လက်လုပ်ဆောင်သွားမှာဖြစ်ပါတယ်။

default ဆိုတာကတော့ case ထဲကvalueတွေလုံးဝမတူညီတဲ့အချိန်မှာလုပ်ရမယ့် အလုပ်တွေကို ရေးရမှာဖြစ်ပါတယ်။

Syntax:
```java
switch(expression){    
case value1:    
 //code to be executed;    
 break;  //optional  
case value2:    
 //code to be executed;    
 break;  //optional  

//can add more cases.....
    
default:     
//code to be executed if all cases are not matched;    
}
```

Example:
{% replit @HeinKhantZaw/switchExample %}

ဒီ example မှာဆိုရင်တော့ integer variable တစ်ခုအဖြစ် int number = 20; ဆိုတာကို ကြေညာထားပါတယ်။  switch() ထဲမှာ number variable ကို pass လုပ်ပြီး case ၃ ခုနဲ့ တိုက်စစ်ဆေးပါတယ်။ ပထမ case မှာဆိုရင် number တန်ဖိုးက ၁၀ နဲ့ညီတဲ့အခါမှာ `System.out.println("10");` ဆိုတဲ့ operation ကိုအလုပ်လုပ်ပါလိမ့်မယ်။ ဒါပေမယ့် အခု number ရဲ့တန်ဖိုးက 20 ဖြစ်နေတဲ့အတွက် ဒုတိယ case မှာ မှန်သွားပါလိမ့်မယ်။ အဲ့တော့ program ကို run လိုက်တဲ့အခါမှာ 20 ဆိုပြီး output ထွက်ပါမယ်။ တစ်ခုသိထားရမှာက တကယ်လို့ ဒုတိယ case မှာသာ break statement မထည့်ထားဘူးဆိုရင်အောက်က တတိယ case အထိပါဆက်သွားမှာဖြစ်ပြီး 30 ကိုပါ output ထုတ်ပေးသွားမှာဖြစ်ပါတယ်။ အဲ့ဒါကြောင့် case တစ်ခုချင်းစီသာ အလုပ်လုပ်လိုပါက case ရဲ့အဆုံးရောက်တိုင်း break; ကိုမဖြစ်မနေထည့်ပေးဖို့ လိုအပ်ပါတယ်။
Default မှာကတော့ အပေါ် မှာ ပြောထားသလိုပဲ case တွေအားလုံး စစ်ဆေးတာ မအောင်မြင်ခဲ့ရင် default ထဲက operations တွေကို အလုပ် လုပ်ပါလိမ့်မယ်။

ဒီလောက်ဆို conditional statements တွေအကြောင်း နားလည်သွားပြီလို့ထင်ပါတယ်။ နောက်တစ်ပိုင်းမှာ loop statements တွေအကြောင်း ဆက်ပြောပြသွားပါမယ်။