Different between while loop and do/while loop in java


(Bashar963) #1

##بسم الله الرحمن الرحيم
رح اشرح فكرة بسيطة يمكن يجهلها البعض في البرمجة وهي الفرق بين while loop و do/while loop رح حط كود بسيط لــ while

public class Test1 {

    public static void main(String[] args) {
        int i=3;
       while(i>0)
        {
            System.out.println(i);
            i--;
        }

في هذا الكود سوف ينفذ الامر هكذا

run:
3
2
1
BUILD SUCCESSFUL (total time: 0 seconds)

الشرح في البداية قمنا بتعريف متغير i واعطيناه قيمة 3 ثم سيدخل ال while سوف يتحقق في البداية من ان قيمة i اكبر من 0 اذا حقق الشرط سيدخل الى while وينفذ الاوامر
طلبنا منه طبع قيمة i وعمل i-- من اجل ان لا ندخل في دوامه :grin: ولا نخرج منها
ثم تقلص قيمه i الى 2 ثم يعيد الكود لكن مع الرقم 2 حقق الشروط فدخل الى while وهكذا الى ان تصبح قيمة i تساوي الصفر
الان انظر الى هذا الكود

public class Test1 {

    public static void main(String[] args) {
        int i=0;
       while(i>0)
        {
            System.out.println(i);
            i--;
        }

في هذا الكود لن يدخل الى while loop لانه لم يحقق الشرط الى الان فكره بسيطه الان نأتي الى do\while

public class Test1 {

    public static void main(String[] args) {
        int i=0;
        do
        {
           System.out.println(i);
           i--;
        }while(i>0);
    }
    
}

نفس شرط الكود السابق ومن المفترض ان لا يدخل الى داخل الــ while
لكن انظر الى الناتج

run:
0
BUILD SUCCESSFUL (total time: 0 seconds)

طبع قيمة i اي انه دخل الى قلب ال while ونفذ الامر
هذه هي فكرة do اي انك تقول له افعل هذا الكود ثم تحقق من الشرط ف اذا تحقق الشرط ف انه سيكون قد نفذ الاوامر مره وانتهى

ارجو ان تكونو فهمتم الفكرة وما الفرق بينهن

وان كان هناك اي خطأ في الشرح او افكار خاطئة فتحملوني لاني مازلت اتعلم اللغة :sweat_smile:


(عمار الخوالدة) #2

شرحك جميل جدا ومهم أيضا :rose:
في do/while يكون الشرط في نهاية الجملة لذلك يقوم بتنفيذها مرة واحدة على الاقل لأنه لم يتم التحقق من الشرط

شكرا لك على الشرح .