Difference between while and do while loop

Coding ရေးကြတဲ့အခါ သင့်တော်တဲ့ နည်းစနစ်ကို အသုံးပြုကြရပါတယ်။ အဖြေတစ်ခုရဖို့ အဆင်အပြေဆုံး နည်းလမ်းကို ရှာဖွေကြတာပေါ့။ ဒီ blog မှာတော့ do while နဲ့ while loop နှစ်မျိုးအကြောင်း ပြောသွားမှာပါ။

ဒီ program က o နဲ့ . ကို တစ်လှည့်စီ ထုတ်ပြမှာပါ။ ဘယ်နှစ်ကြိမ်ထုတ်ပြမှာလဲဆိုတာကို num ဆိုတဲ့ variable နဲ့ သတ်မှတ်ပေးလိုက်ပါတယ်။ တကယ်လို့ num က 0 (Zero) ဒါမှမဟုတ် 0 (Zero) အောက်ငယ်မယ်ဆိုရင် ဘာမှထုတ်မပြဘူးလို့ ဆုံးဖြတ်ထားပါတယ်။ ဆိုတော့ ဘယ်နည်းကိုသုံးပြီး loop ပတ်မလဲဆိုတာ စဉ်းစားကြပါမယ်။

Do While Loop

Java
public static void printDots(int num) { 
  int cnt = 0; 
  String dotColor = "DC1"; 
  
  do { 
    if (dotColor.equals("DC1")) {  
      System.out.print("o");  
      dotColor = "DC2";  
    } else {  
      System.out.print(".");  
      dotColor = "DC1"; 
    }  
    cnt++;  
  } while (cnt < num);  
  
  System.out.println(); 
} 
   
public static void main(String[] args) { 
  printDots(0);  // output : o 
  printDots(5);  // output : o.o.o 
} 

Do While Loop ကတော့ စစချင်းမှာ condition ကို မစစ်ပဲ တစ်ကြိမ်တော့ run ပါတယ်။ ဒါကြောင့် ပထမဆုံး printDots function ကို ခေါ်လိုက်တဲ့အချိန်မှာ 0 ပေးလိုက်ပေမယ့် သူက condition ကို အရင်မစစ်လို့ တစ်ကြိမ် run ပြီး o ကို ထုတ်ပြပါတယ်။ ထုတ်ပြပြီးမှ cnt ကို တစ်တိုးပြီး cnt က num အောက်ငယ်လားစစ်ပါတယ်။ cnt က 1 ဖြစ်ပြီး num က 0 ဖြစ်နေတဲ့အတွက် loop ကို အဆုံးသတ်လိုက်ပါတယ်။

နောက်တစ်ခါ printDots function ကို ခေါ်လိုက်တဲ့အချိန်မှာ 5 ပေးလိုက်ပါတယ်။ ဒီတစ်ခါမှာတော့ သူက တစ်ခါ run ပြီးတဲ့အချိန်မှာ cnt ကို တစ်ပေါင်းပြီး num အောက်ငယ်မငယ် စစ်ပြီး ငယ်တဲ့အတွက် နောက်တစ်ခါ ထပ်ပတ်ပါတယ်။ ဒီလိုနဲ့ နောက်ဆုံးမှာ cnt က 5 နဲ့ ညီသွားတဲ့အတွက် loop ပတ်တာကိုရပ်လိုက်ပါတယ်။

While Loop

Java
public static void printDots(int num) { 
  int cnt = 0; 
  String dotColor = "DC1"; 
  
  while (cnt < num) {    
    if (dotColor.equals("DC1")) {    
      System.out.print("o");  
      dotColor = "DC2";  
    } else {  
      System.out.print(".");  
      dotColor = "DC1"; 
    }  
    cnt++;  
  }
    System.out.println(); 
} 
   
public static void main(String[] args) { 
  printDots(0);  // output :  
  printDots(5);  // output : o.o.o 
} 

While Loop ကတော့ စစချင်းမှာ condition ကို စစ်ပါတယ်။ ဒါကြောင့် ပထမဆုံး printDots function ကို ခေါ်လိုက်တဲ့အချိန်မှာ 0 ပေးလိုက်လို့ ဘာကိုမှ ထုတ်ပြမှာ မဟုတ်တော့ပါဘူး။ cnt က 0 ဖြစ်ပြီး num က 0 ဖြစ်နေတဲ့အတွက် loop ကို အဆုံးသတ်လိုက်ပါတယ်။

နောက်တစ်ခါ printDots function ကို ခေါ်လိုက်တဲ့အချိန်မှာ 5 ပေးလိုက်ပါတယ်။ cnt က 0 ဖြစ်ပြီး num က 5 ဖြစ်နေတဲ့အတွက် loop ကို စပတ်ပါတယ် တစ်ခါပတ်ပြီးတိုင်း cnt ကို တစ်တိုးပါတယ်။ ဒီလိုနဲ့ နောက်ဆုံးမှာ cnt က 5 နဲ့ ညီသွားတဲ့အတွက် loop ပတ်တာကိုရပ်လိုက်ပါတယ်။

ဒါကြောင့် ဒီ program မှာ ကျွန်တော်တို့က while ကို သုံးပြီး loop ပတ်ရမှာဖြစ်ပါတယ်။ ဒါမှသာ num 0 ဖြစ်နေတဲ့အချိန်မှာ output ထုတ်မပြမှာဖြစ်ပါတယ်။

ဒီလောက်ဆိုရင် while နဲ့ do while ရဲ့ အသုံးကွဲပြားပုံကို မြင်ကြမယ်လို့ထင်ပါတယ်။

Last updated