0% found this document useful (0 votes)
43 views30 pages

04 Loops

Uploaded by

sss
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views30 pages

04 Loops

Uploaded by

sss
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 30

‫أساسيات البرمجة‬

Chapter(4):

control structure : Loops


Contents:‫لمحاضرة‬##‫محتوياتا‬
1. Introduction

2. The for Loop (sec 4.4)

3. The while Loop (sec 4.2)

4. The do-while Loop (sec 4.3)

 Examples
‫‪4.4. The do-while loop‬‬
‫‪ The syntax of do-while loop:‬‬
‫;‪initial-action‬‬ ‫القيمة االبتدائية لبداية لتنفيذ الحلقة التكرارية‬

‫الكلمة المحجوزة ‪1‬‬


‫‪2 start loop block‬‬
‫{ ‪do‬‬ ‫‪3‬‬

‫‪// Loop body‬‬


‫ا‪##‬لتعليماتا‪##‬لمراد ت‪##‬نفيذها عند ت‪##‬حققش‪##‬رط ت‪##‬نفيذ ا‪##‬لحلقة ا‪##‬لتكرارية‪Statement(s); //‬‬

‫‪action-after-each-iteration‬‬ ‫معدل الزيادة أو النقصان لمواصلة التنفيذ للحلقة‬

‫;) ‪} while ( loop- continuation-condition‬‬


‫‪4 end loop‬‬ ‫الكلمة المحجوزة ‪5‬‬ ‫شرط تنفيذ الحلقة التكرارية ‪6‬‬
‫‪block‬‬
‫‪4.4. The do-while loop‬‬
‫ت‪##‬سلسل ت‪##‬نفيذ ا‪##‬لحلقة ا‪##‬لتكرارية ‪ do-while loop flow chart:(do-while‬‬
‫)‬
‫يتم البدء بتنفيذ التعليمات‬
‫قبل اختبار شرط تنفيذ الحلقة‬

‫)‪(loop body‬‬
‫فى حالة القيمة ‪true‬‬ ‫)‪Statement(s‬‬
‫يتم الرجوع لمواصلة‬
‫التنفيذ للحلقة التكرارية‬ ‫اختبار شرط تنفيذ الحلقة التكرارية‬
‫‪true or false‬‬
‫‪true‬‬ ‫‪Loop‬‬
‫‪Continuation‬‬
‫?‪Condition‬‬

‫فى حالة القيمة ‪ false‬يتم‬


‫‪False‬‬ ‫انهاء تنفيذ للحلقة التكرارية‬
‫‪4.4. The do-while loop‬‬

‫‪ 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‬مرة على شاشة التنفيذ‬

‫ناتج تنفيذ البرنامج‪:‬‬


‫‪welcome to java‬‬
‫‪welcome to java‬‬
‫‪..‬‬
‫‪..‬‬
‫‪...‬‬
‫‪welcome to java‬‬
‫‪welcome to java‬‬
‫‪welcome to java‬‬
‫‪#‬ل‪4.4. The do-while loop )1‬‬
‫مثا‪( #‬‬
‫القيمة االبتدائية لبداية‬
‫‪ ‬تسلسل تنفيذ البرنامج لطباعة الرسالة ‪100‬مرة بالتنفيذ‪:‬‬
‫تنفيذ الحلقة‬
‫;‪count = 0‬‬

‫;)”‪System.out.println(“welcome to java‬‬
‫;‪count ++‬‬

‫زيادة قيمة المتغير‬


‫‪Loop Continuation‬‬
‫بعد كل تكرار للحلقة‬
‫?‪Condition‬‬

‫‪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‬‬
‫مثا‪( #‬‬

‫بإس‪#‬تخدام حلق‪#‬ة ‪ ،do-while‬اكت‪#‬ب برنام‪#‬ج يقوم بطباع‪#‬ة الحروف م‪#‬ن‬


‫”‪ “Z - A‬على شاشة التنفيذ‬

‫ناتج تنفيذ البرنامج‪:‬‬

‫‪A- B- C- D- E – F- G- H- ...................... V- W- X- Y-Z‬‬


‫‪#‬ل‪4.4. The do-while loop )2‬‬
‫مثا‪( #‬‬
‫‪ ‬تسلسل تنفيذ برنامج طباعة الحروف من ‪:Z - A‬‬
‫القيمة االبتدائية‬
‫لبداية تنفيذ الحلقة‬
‫‪1‬‬ ‫;’‪ch = ‘A‬‬

‫;)”‪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‬‬
‫مثا‪( #‬‬

‫بإستخدام حلقة ‪،do-while‬اكتب برنامج يقوم بطباعة األعداد فى المدى‬


‫من ‪ 1 - 100‬بحيث يكون ناتج تنفيذ البرنامج كاآلتى ‪:‬‬

‫‪The numbers from 1 to 100 are:‬‬

‫‪1-2-3-4-5- .......... 44- 45- 46- 47- 48-49-50 ....... 98-99-100‬‬


‫‪#‬ل‪4.4. The do-while loop )3‬‬
‫مثا‪( #‬‬
‫‪ ‬تسلسل تنفيذ برنامج طباعة األعداد من ‪:1 - 100‬‬
‫القيمة االبتدائية‬
‫لبداية تنفيذ حلقة‬
‫‪1‬‬ ‫;‪num = 1‬‬

‫;)”‪System.out.print ( num + “-‬‬


‫;‪num ++‬‬
‫‪2‬‬
‫زيادة قيمة المتغير بواحد‬
‫بعد كل تكرار للحلقة‬ ‫شرط تنفيذ الحلقة أن تكون قيمة‬
‫‪3‬‬ ‫المتغير‪ num‬أقل من أو تساوى‪100‬‬
‫‪true‬‬
‫) ‪( num <= 100‬‬
‫مواصلة التنفيذ الحلقة‬

‫‪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‬‬
‫مثا‪( #‬‬

‫بإس‪#‬تخدام حلق‪#‬ة ‪،do-while‬اكت‪#‬ب برنام‪#‬ج يقوم بطباع‪#‬ة مجموع األعداد‬


‫الفردي‪#‬ة المحص‪#‬ورة ف‪#‬ى المدى م‪#‬ن ‪10 - 50‬بحي‪#‬ث يكون نات‪#‬ج تنفي‪#‬ذ‬
‫البرنامج‪:‬‬

‫‪The Summation of odd number between 10 - 50: 600‬‬


‫‪#‬ل‪4.4. The do-while loop )4‬‬
‫مثا‪( #‬‬
‫‪ ‬طباعة مجموع االعداد الفردية بين ‪: 10 – 50‬‬
‫‪ 1‬القيمة االبتدائية‬
‫;‪x = 10 , sum = 0‬‬ ‫باستخدام عبارة االختيار ‪ if‬يتم‬
‫اختبار العدد اذا كان فردى أو ال‬

‫‪true‬‬ ‫‪false‬‬
‫) ‪if ( x % 2 != 0‬‬

‫;‪sum = sum + x‬‬

‫‪2‬‬ ‫;‪x ++‬‬


‫شرط تنفيذ الحلقة أن تكون قيمة‬
‫المتغير‪ x‬أقل من أو تساوى‪3 50‬‬
‫مواصلة التنفيذ‬ ‫‪true‬‬
‫) ‪( x <= 50‬‬

‫‪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‬‬
‫مثا‪( #‬‬

‫بإس‪#‬تخدام حلق‪#‬ة ‪،do-while‬اكت‪#‬ب برنام‪#‬ج يطل‪#‬ب م‪#‬ن المس‪#‬تخدم ادخال‬


‫عدد ص‪#‬حيح (م‪#‬ن النوع ‪ )int‬لعدد م‪#‬ن المرات‪ ،‬بحي‪#‬ث يس‪#‬تمر المس‪#‬تخدم‬
‫ف‪#‬ى االدخال ال‪#‬ى أ‪#‬ن يت‪#‬م إدخال القيم‪#‬ة ص‪#‬فر (‪ )0‬إلنهاء اإلدخال‪ ،‬ث‪#‬م يقوم‬
‫البرنامج بطباعة مجموع االعداد التى قام المستخدم بادخالها‪.‬‬

‫بإفتراض أن المستخدم قام بإدخال القيم اآلتية‪:‬‬


‫‪Enter number: 10‬‬
‫‪Enter number : 5‬‬
‫‪Enter number : 20‬‬
‫‪Enter number : 15‬‬
‫‪Enter number : 4‬‬
‫‪Enter number : 0‬‬
‫‪The summation of inserted numbers is : 54‬‬
4.4. The do-while loop )5‫ل‬#
( #‫مثا‬
:‫ وطباعة مجموع هذه االعداد‬،‫ ادخال اعداد صحيحة من المستخدم‬
1
int sum = 0, num;

2 System.out.print(“Enter number(press 0 to Exit):”);


3 num = scanner.nextInt();
4 sum = sum + num;

5 ‫شرط تنفيذ الحلقة أن تكون قيمة‬


true 0 ‫ أكبر من‬num‫المتغير‬
( num > 0 )
‫مواصلة التنفيذ للحلقة‬
false
System.out.print (sum);
4.4. The do-while loop )5‫ل‬#
( #‫مثا‬
GetNum.java
import java.util.Scanner; //Scanner ‫ـل‬##‫حديد مكانوجود ا‬##‫ت‬
public class GetNum {
public static void main(String[ ] args) {
int sum = 0;
Scanner scanner = new Scanner(System.in);
do { //start of loop
System.out.println(“Enter number(press 0 to Exit):”);
int num = scanner.nextInt();
sum = sum + num;
} while ( num > 0 );
System.out.println(“The summation of inserted number
is :” + sum);
} //end of main
} //end of class
‫‪#‬ل‪4.4. The do-while loop )6‬‬
‫مثا‪( #‬‬
‫بإس‪##‬تخدام حلق‪##‬ة ‪،do-while‬اكت‪##‬ب برنام‪##‬ج يطل‪##‬ب م‪##‬ن المس‪##‬تخدم ادخال‬
‫مجموع‪#‬ة م‪#‬ن الحروف تنته‪#‬ى بإدخال العالم‪#‬ة(‪ ،)$‬ث‪#‬م يقوم ال‪#‬برنامج بإختبار‬
‫الحروف ال ُمدخل‪###‬ة وتحدي‪###‬د م‪###‬ا اذا كان‪###‬ت م‪###‬ن ضم‪###‬ن الحروف المتحرك‪###‬ة‬
‫"‪ ،”Vowel letter‬وطباعة مجموعها بحيث يكون التنفيذ كاآلتى‪:‬‬

‫‪Enter char: E‬‬


‫ناتج التنفيذ بعد اإلدخال‪:‬‬
‫‪Enter char: A‬‬
‫‪The number of A : 1‬‬
‫‪Enter char: i‬‬
‫‪The number of E : 2‬‬
‫‪Enter char: e‬‬
‫‪The number of I : 1‬‬
‫‪Enter char: U‬‬
‫‪The number of O : 2‬‬
‫‪Enter char: o‬‬
‫‪The number of U : 1‬‬
‫‪Enter char: r‬‬
‫‪Enter char: O‬‬
‫‪Enter char: u‬‬
‫‪Enter char: $‬‬
)6(‫مثال‬
‫قراءة القيمة االبتدائية‬ System.out.print(“Enter char :”);
‫لبداية تنفيذ الحلقة‬ char ch = scanner.next().charAt[0];

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];

‫طباعة قيم المتغيرات‬


4.4. The do-while loop )6‫ل‬#
( #‫مثا‬
GetChar.java
import java.util.Scanner; //Scanner ‫ـل‬##‫حديد مكانوجود ا‬##‫ت‬
public class GetChar {
public static void main(String[ ] args) {
int op1, op2, op3, op4, op5 = 0;
Scanner scanner = new Scanner(System.in);
System.out.println(“Enter char:”);
char ch = scanner.next().charAt[0];
do {
switch (ch) { //start switch block
case ‘a’: case ‘A’: op1++; break;
case ‘e’: case ‘E’: op2++; break;
case ‘i’: case ‘I’: op3++; break;
4.4. The do-while loop )6‫ل‬#
( #‫مثا‬
GetChar.java
case ‘o’: case ‘O’: op1++; break;
case ‘u’: case ‘U’: op2++; break;
$ ‫ قراءة حرف جديد لمواصلة التنفيذ الى أن يتم ادخال العالمة‬//
System.out.println(“Enter char:”);
ch = scanner.next().charAt[0];
} while ( ch != ‘$’ );

‫’ يتم طباعة قيم المتغيرات الخمسة‬$‘ ‫ عند انهاء االدخال بالعالمة‬//


System.out.println(“The number of A : ” + op1); :‫كاآلتى‬
System.out.println(“The number of E : ” + op2);
System.out.println(“The number of I : ” + op3);
4.4. The do-while loop )6‫ل‬#
( #‫مثا‬
GetChar.java

System.out.println(“The number of O : ” + op4);


System.out.println(“The number of U : ” + op5);

} //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;

System.out.print(“Enter number: ”);


x = scanner.nextInt();

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

You might also like