04 Loops
04 Loops
Chapter(4):
Examples
4.4. The do-while loop
The syntax of do-while loop:
;initial-action القيمة االبتدائية لبداية لتنفيذ الحلقة التكرارية
)(loop body
فى حالة القيمة true )Statement(s
يتم الرجوع لمواصلة
التنفيذ للحلقة التكرارية اختبار شرط تنفيذ الحلقة التكرارية
true or false
true Loop
Continuation
?Condition
The do-while loop executes the loop body first, and
then checks the loop-continuation-condition to
determine whether to continue or terminate the loop.
تقوم حلقة ،do-whileببدء تنفيذ التعليمات الموجودة بجسم الحلقة أوالً ،ثم
بعد ذلك تقوم بإختبار شرط تنفيذ تكرار الحلقة ،ففى حالة الحصول على القيمة
trueيتم المواصلة فى التنفيذ ،أما فى حالة الحصول على falseيتم مباشرة
انهاء تنفيذ الحلقة.
4.4. The do-while & while loop
The major difference between a while loop and do-while
loop is the order in which the loop-continuation-condition
is evaluated and the loop body executed.
نجد أن االختالف األساسى بين حلقة while ، do-whileيكون فى ترتيب(تسلسل)
التنفيذ لشرط الحلقة التكرارية وتنفيذ التعليمات الموجودة بجسم الحلقة
ففى تنفيذ حلقة ،do-whileيتم البدء بتنفيذ التعليمات الموجودة بجسم الحلقة
أوالً ،ثم بعد ذلك يتم إختبار شرط تنفيذ تكرار الحلقة.
(لذلك نالحظ أن حلقة ُ do-whileتنفذ عباراتها(أى التعليمات بجسم الحلقة)
مرة واحدة على األقل وذلك ألنها ٌتنفذ أوال ثم بعد ذلك تختبر شرط التنفيذ)
أما عند تنفيذ حلقة ،whileيتم البدء أوال بإختبار شرط تنفيذ تكرارالحلقة،
وفى حالة تحقق الشرط بالقيمة trueيتم مباشر ًة تنفيذ التعليمات الموجودة
بجسم الحلقة(.)loop body
#ل4.4. The do-while loop )1
مثا( #
بإس##تخدام حلق##ة ،do-whileاكت##ب برنام##ج يقوم بطباع##ة الرس##الة
” “welcome to javaبحي#ث يكون عدد مرات طباع#ة هذه الرس#الة
100مرة على شاشة التنفيذ
;)”System.out.println(“welcome to java
;count ++
true
) ( count < 100
فى حالة القيمة true
يتم مواصلة التنفيذ
للحلقة التكرارية false فى حالة القيمة false
يتم انهاء التنفيذ للحلقة
4.4. The do-while loop )1ل#
( #مثا
DisplayText.java
public class DisplayText {
public static void main(String[ ] args) {
int count = 0;
do { //start loop block
System.out.println(”welcome to java”);
count ++;
} while ( count < 100 );
} //end of main
} //end of class
#ل4.4. The do-while loop )2
مثا( #
;)”System.out.print ( ch + “-
;ch ++
2
زيادة قيمة المتغير بواحد
بعد كل تكرار للحلقة شرط تنفيذ الحلقة أن تكون قيمة
3 المتغير chأقل من أو تساوى’’Z
true
) ’( ch <= ‘Z
مواصلة التنفيذ الحلقة
false
4.4. The do-while loop )2ل#
( #مثا
Guess.java
public class Guess {
public static void main(String[ ] args) {
char ch = ‘A’;
do { //start of loop
System.out.print ( ch + ”-”);
ch ++;
} while ( ch <= ‘Z’ );
} //end of main
} //end of class
#ل4.4. The do-while loop )3
مثا( #
false
4.4. The do-while loop )3ل#
( #مثا
GuessNum.java
public class GuessNum {
public static void main(String[ ] args) {
int num = 1;
do { //start of loop block
System.out.print ( num + ”-”);
num ++;
} while ( num <= 100 );
} //end of main
} //end of class
#ل4.4. The do-while loop )4
مثا( #
true false
) if ( x % 2 != 0
false
4.4. The do-while loop )4ل#
( #مثا
GetOdd.java
public class GetOdd {
public static void main(String[ ] args) {
int x = 10 , sum = 0;
do { //start of loop
if ( x % 2 != 0 ) // check if num is odd
sum = sum + x;
x ++;
} while ( x <= 50 );
System.out.println(“The summation of odd number
between 10 -50:” + sum);
} //end of main
} //end of class
#ل4.4. The do-while loop )5
مثا( #
switch (ch){
case ‘A’: case ‘a’ : op1++; break;
case ‘E’: case ‘e’ : op2++; break;
case ‘I’: case ‘i’ : op3++; break;
case ‘O’: case ‘o’ : op4++; break;
case ‘U’: case ‘u’ : op5++; break;
}
false
( ch != ‘$’)
قراءة حرف جديد
لمواصلة التنفيذ true
System.out.print(“Enter char :”);
ch = scanner.next().charAt[0];
} //end of main
} //end of class
Class Work #ل)7
مثا( #
اكت#ب برنام#ج يطل#ب م#ن المس##تخدم ادخال مجموع#ة م#ن األعداد الص#حيحة
( )intبحي#ث ينته#ى االدخال بإدخال الرق#م ( ،)1-ث#م يقوم ال#برنامج بطباع#ة
العدد االصغر من بين تلك االعداد:
(أ) قم بكتابة هذا البرنامج بإستخدام حلقةdo-while
(ب) قم بكتابة هذا البرنامج بإستخدام حلقة while
بإفتراض أن المستخدم قام بإدخال اآلتى:
Enter number: 5
Enter number: 2
Enter number: 15
Enter number: 7
Enter number: 10
Enter number: -1
The minimum number is 2
Class Work )7ل#
( #مثا
System.out.print(“Enter number: ”);
int x = scanner.nextInt();
min = x;
true false
if ( x < min )
min = x;
true ( i != -1 )
false
4.4. The do-while loop )7ل#
( #مثا
GetMin.java
import java.util.Scanner; //Scanner ـل##حديد مكانوجود ا##ت
public class GetMin {
public static void main(String[ ] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“Enter
number:”);
int x = scanner.nextInt();
int min = x; // #لمستخدم## منا#ئته#را## ق#تم##أول عدد ت##بminلمتغير##ئية ل#البتدا# لقيمة ا##حديد ا##ت
do { //start of loop
if ( x < min ) // min لمتغير##ا##لمخزنة ب##لقيمة ا## ا#دد مع#لع##مقارنة ا
min = x;
4.4. The do-while loop )7ل#
( #مثا
GetMin.java
قراءة عدد جديد لمواصلة التنفيذ//
System.out.println(“Enter
number:”);
x = scanner.nextInt();
} while ( x != -1 );
طباعة العدد األصغر من بين االعداد التى تم ادخالها//
System.out.println(“The min number is ” + min);
} //end of main
} //end of class