ومثل c++ اذا احتاجينا نعرف عداد للوب لازم نعرفه قبل while
والزيادة تكون احد التعاليم ststements داخل الاقواس {}
يعني بعكس for الي يكون بيها تعريف العداد والزيادة ويا الشرط داخل الاقواس ()
والزيادة تكون احد التعاليم ststements داخل الاقواس {}
يعني بعكس for الي يكون بيها تعريف العداد والزيادة ويا الشرط داخل الاقواس ()
وللتوضيح اكثر راح اعيد هذا المثال بwhile
import java.util.Scanner;
public class Main {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int i = 0, sum = 0;
while (i < 10) {
int number = scanner.nextInt();
sum += number;
i++;
}
System.out.println("Sum of the 10 numbers: " + sum);
}
}
import java.util.Scanner;
public class Main {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int i = 0, sum = 0;
while (i < 10) {
int number = scanner.nextInt();
sum += number;
i++;
}
System.out.println("Sum of the 10 numbers: " + sum);
}
}
مثل ماتشوفون الفرق الوحيد هو ان i عرفناها قبل while وزيادة i صارت داخل while
اهم فرق بين for و while ان for تتطلب عداد فيكون عدد الدورات ثابت
بينما while مانعرف عدد الدورات بالضبط فيفضل نستعمل while لمن يكون عدد الدورات غير ثابت
بينما while مانعرف عدد الدورات بالضبط فيفضل نستعمل while لمن يكون عدد الدورات غير ثابت
import java.util.Scanner;
public class AddUpToTwenty {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int sum = 0;
System.out.println("Enter numbers to add up to 20: ");
while (sum <= 20) {
sum += scanner.nextInt();
}
System.out.println("Done.");
}
}
public class AddUpToTwenty {
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int sum = 0;
System.out.println("Enter numbers to add up to 20: ");
while (sum <= 20) {
sum += scanner.nextInt();
}
System.out.println("Done.");
}
}
وهذا المثال يوضح الفرق
البرنامج يجمع الارقام الي يدخلها المستخدم الى ان يتخطى المجموع 20
عدد الدورات هنا مجهول لان المستخدم ممكن يدخل رقم اكبر من 20 مباشرة فيتوقف البرنامج بعد دورة واحدة
او ممكن يدخل ارقام اقل من عشرين ويزيد عدد الدورات
البرنامج يجمع الارقام الي يدخلها المستخدم الى ان يتخطى المجموع 20
عدد الدورات هنا مجهول لان المستخدم ممكن يدخل رقم اكبر من 20 مباشرة فيتوقف البرنامج بعد دورة واحدة
او ممكن يدخل ارقام اقل من عشرين ويزيد عدد الدورات
Enter numbers to add up to 20:
4
4
4
4
4
4
Done.
هنا البرنامج تطلب 6 دورات
4
4
4
4
4
4
Done.
هنا البرنامج تطلب 6 دورات
Enter numbers to add up to 20:
2
4
7
13
Done.
وهنا 4
2
4
7
13
Done.
وهنا 4
للتوضيح اكثر خل نسوي برنامج يخلي المستخدم يحزر رقم الى ان يوصل للرقم الصحيح
import java.util.Scanner;
public class GuessNumber {
static Scanner scanner = new Scanner(System.in);
public static void main (String[] args) {
int number = 12, tries = 0;
System.out.print("Guess a number (0 - 20): ");
while (true) {
tries++;
if (scanner.nextInt() == number) {
System.out.println("\nCorrect!!!\nAttempts: " + tries);
break;
}
System.out.print("incorrect!!\nTry again: ");
}
scanner.close();
}
}
public class GuessNumber {
static Scanner scanner = new Scanner(System.in);
public static void main (String[] args) {
int number = 12, tries = 0;
System.out.print("Guess a number (0 - 20): ");
while (true) {
tries++;
if (scanner.nextInt() == number) {
System.out.println("\nCorrect!!!\nAttempts: " + tries);
break;
}
System.out.print("incorrect!!\nTry again: ");
}
scanner.close();
}
}
هنا الشرط خليناه true فاللوب راح تستمر الى ان يوصل البرنامج الى تعليمة break
فبهذي الحالة ماندري شكم محاولة راح يحتاج المستخدم الى ان يوصل للرقم الصحيح الي هو 12
فبهذي الحالة ماندري شكم محاولة راح يحتاج المستخدم الى ان يوصل للرقم الصحيح الي هو 12
وهذا الشرط الي هو مساواة الرقم المدخل مع المتغير number
اذا تحقق البرنامج راح يكللنا ان الجواب صحيح ويطبع عدد المحاولات
اذا تحقق البرنامج راح يكللنا ان الجواب صحيح ويطبع عدد المحاولات
❤1
وهنا تعليمة break اللي توقف اللوب موجودة داخل if
يعني من يتحقق الشرط راح يوصل البرنامج للbreak واللوب راح تنتهي
يعني من يتحقق الشرط راح يوصل البرنامج للbreak واللوب راح تنتهي
hey guys😺
أخر نوع من الloop:
do...while
شنو الفرق بينها وبين الwhile؟
هنا بالwhile إحتمال ماتحصل اي نتيجة منها واحتمال اي ، أما بالdo بالقليل عندك نتيجة وحدة أو تنفيذ واحد مستحيل مايتنفذ عندك ولاشي.
شلون يعني؟
انا اگلك ال while العادية حيكون عندك أول شي شرط إذا كان صح حيتنفذ الشي إلي بداخل الloop وإذا لا ماراح ينفذ اي شي.
أما بالdo راح ينفذ أول شي التعليمة إلي خالها بعدينه يروح للwhile ويشوف إذا الشرط تحقق أو لا وتكمل طبيعي مثل الwhile العادية.
Okay?
أخر نوع من الloop:
do...while
شنو الفرق بينها وبين الwhile؟
هنا بالwhile إحتمال ماتحصل اي نتيجة منها واحتمال اي ، أما بالdo بالقليل عندك نتيجة وحدة أو تنفيذ واحد مستحيل مايتنفذ عندك ولاشي.
شلون يعني؟
انا اگلك ال while العادية حيكون عندك أول شي شرط إذا كان صح حيتنفذ الشي إلي بداخل الloop وإذا لا ماراح ينفذ اي شي.
أما بالdo راح ينفذ أول شي التعليمة إلي خالها بعدينه يروح للwhile ويشوف إذا الشرط تحقق أو لا وتكمل طبيعي مثل الwhile العادية.
Okay?
طب شنو الفرق بيناتهم بشكل الحل؟
أول شي همينه راح نعرف الi قبل الloop بس ماراح تتغير قيمتها داخل الwhile هنا حتتغير داخل الdo.
والتعليمة إلي تريدها تتنفذ داخل الloop همينه حتكون داخل الdo مو بالwhile.
الwhile هنا ماراح يصير بيها اقواس (ماعدا قوس الشرط) ولاحتكون داخل اقواس الdo، هيج يعني:
do{
}
while (con);{
}
أو هيج
do{
while(con) ;}
محتشتغل لو شما يصير هنا :) .
احنه حنكتبها خارج أقواس الdo ومالها اقواس(ماعدا اقواس الشرط) حته لو عدنه تعليمة بعدها، ماشي؟
حنكتبها مثل هاي:
int i=any num;
do{
ststements;
ststements for i;
} while (con) ;
any ststements you want;
وحتبين ألكم بال examples الجاية.
أول شي همينه راح نعرف الi قبل الloop بس ماراح تتغير قيمتها داخل الwhile هنا حتتغير داخل الdo.
والتعليمة إلي تريدها تتنفذ داخل الloop همينه حتكون داخل الdo مو بالwhile.
الwhile هنا ماراح يصير بيها اقواس (ماعدا قوس الشرط) ولاحتكون داخل اقواس الdo، هيج يعني:
do{
}
while (con);{
}
أو هيج
do{
while(con) ;}
محتشتغل لو شما يصير هنا :) .
احنه حنكتبها خارج أقواس الdo ومالها اقواس(ماعدا اقواس الشرط) حته لو عدنه تعليمة بعدها، ماشي؟
حنكتبها مثل هاي:
int i=any num;
do{
ststements;
ststements for i;
} while (con) ;
any ststements you want;
وحتبين ألكم بال examples الجاية.
ex: sum in do..while
حشرحه بالتفصيل جوا:
import java.util.Scanner;public class ayat{
public static void main(String[] args) {
Scanner AA = new Scanner(System.in); System.out.println("enter the number:");
int n=AA.nextInt(); int sum=0;
int i=1; do{
sum+=i; i++;
}while(i<=n); System.out.println("sum="+sum);
}}
حشرحه بالتفصيل جوا:
import java.util.Scanner;public class ayat{
public static void main(String[] args) {
Scanner AA = new Scanner(System.in); System.out.println("enter the number:");
int n=AA.nextInt(); int sum=0;
int i=1; do{
sum+=i; i++;
}while(i<=n); System.out.println("sum="+sum);
}}
هنا أول شي خلينه مسج لليوزر حته يدخل قيمة العدد إلي يريد الsum مالته،
بعدينه خلينه sum و i للloopمالتنه.
بعدينه خلينه sum و i للloopمالتنه.
هنا حيدخل بالdo (حينفذ من دون أي شرط) حيجمع قيمة الsum بالi،
و بعدينه حيزيد قيمة الi واحد وراح يروح للwhile وحيستمر مثل الwhile العادية وحيكمل منا لحد متخلص الloop ويطبعلي قيمه الsum وبس.
و بعدينه حيزيد قيمة الi واحد وراح يروح للwhile وحيستمر مثل الwhile العادية وحيكمل منا لحد متخلص الloop ويطبعلي قيمه الsum وبس.