English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، سنستخدم الأمثلة لتعلم كيفية استخدام الدورات while و do...while في بايثون، وسنتعلم أيضًا كيف تعمل الدورات while في برمجة الحواسيب
في برمجة الحواسيب، تستخدم الدورات لتكرار قطع معينة من الكود حتى يتم استيفاء شرط معين (يعاد اختبار التعبير كزائف)
تخيل أننا نحتاج إلى طباعة جملة 50 مرة على الشاشة. حسناً، يمكننا القيام بذلك من خلال استخدام جملة print 50 مرة (بدون استخدام دورة). ماذا عن طباعة المليون مرة لجملة واحدة؟ تحتاج إلى استخدام دورة. باستخدام الدورات، يمكننا كتابة جملة print مرة واحدة، ثم تشغيلها بقدر ما نريد.
هذا مجرد مثال بسيط يوضح أهمية الدورات في برمجة الحواسيب. هناك 3 أنواع من الدورات في لغة بايثون:لفور,while循环和do-while循环。
Java 中 while循环的语法为:
while (testExpression) { // while循环体中的代码 {}
在以上语法中,括号内的测试表达式(testExpression)为布尔表达式。如果测试表达式(testExpression)的计算结果为true,
while循环内的语句将被执行。
然后,再次评估测试表达式(testExpression)。
这个过程一直进行到测试表达式被评估为false为止。如果测试表达式的计算结果为false,
则while循环被终止。
//程序打印行10次 class Loop { public static void main(String[] args) { int i = 1; while (i <= 10) { System.out.println("Line " + i); ++i; {} {} {}
الإخراج:
Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10
在上面的示例中,我们有一个测试表达式(i <= 10)。它检查i的值是否小于或等于10。
最初,此处i的值为1。因此,测试表达式(testExpression)的计算结果为true。因此,将执行while循环内的print语句。
请注意while循环内的语句
++i;
该语句在每次迭代中将i值增加1。经过10次迭代后,i的值为11。然后测试表达式(i <= 10)为false,求和while循环终止。
要了解有关测试表达式及其评估方式的更多信息,请访问Java 关系运算符和Java 逻辑运算符.
//编程以查找1到100之间的自然数之和。 class AssignmentOperator { public static void main(String[] args) { int sum = 0, i = 100; while (i != 0) { sum += i; // 等同于 sum = sum + i; --i; {} System.out.println("Sum = " + sum); {} {}
الإخراج:
Sum = 5050
في هذا المكان، لدينا متغيران يُدعى sum،i،والقيم الابتدائية لهما 0 و100.
في كل تكرار من دورة while
تخصيص قيمة لـsum: sum + i
يقلل قيمة i بـ 1
الدائرة تستمر حتى يكون قيمة i تساوي 0.
الجولة 1: i = 100, sum = 0 + 100 = 100، في نفس الوقت --i = 99 الجولة 2: i = 99, sum = 100 + 99 = 199، في نفس الوقت --i = 98 الجولة 3: i = 98, sum = 199 + 98 = 297، في نفس الوقت --i = 97 ... .. ... ... .. ... الجولة 99: i = 2, sum = 5047 + 2 = 5049، في نفس الوقت --i = 1 الجولة 100: i = 1, sum = 5049 + 1 = 5050، في نفس الوقت --i = 0
دو ... بينما يشبه while، ولكن هناك فرق حاسم، حيث يتم تنفيذ جسم الدائرة مرة واحدة قبل فحص التعبير الاختباري.
هذه هي بنية جملة دو ... بينما
do { // كود داخل دو ... بينما } while (testExpression);
يتم تنفيذ جسم دو ... بينما مرة واحدة (قبل فحص التعبير الاختباري). فقط بهذا الشكل، سيتم فحص التعبير الاختباري.
إذا تم حساب التعبير الاختباري كـ true، يتم تنفيذ كود جسم الدائرة مرة واحدة، ثم يتم حساب التعبير الاختباري مرة أخرى. يتم استمرار هذا العمل حتى يتم حساب التعبير الاختباري كـ false.
عندما يكون التعبير الاختباري false، تنتهي دو .. بينما
هذا البرنامج يحسب مجموع الأرقام المدخلة من المستخدم حتى يتم إدخال 0.
لإجراء استقبال المدخلات من المستخدم، استخدمنا عنصر Scanner. للحصول على معلومات إضافية حول Scanner، يرجى زيارةJava Scanner.
import java.util.Scanner; class Sum { public static void main(String[] args) { Double number, sum = 0.0; // إنشاء عنصر من الفئة Scanner Scanner input = new Scanner(System.in); do { // استقبال المدخلات من المستخدم System.out.print("ادخل رقم: "); number = input.nextDouble(); sum += number; }; while (number != 0.0); //تعبير التحقق System.out.println("Sum = " + sum); {} {}
الإخراج:
أدخل رقمًا: 2.5 أدخل رقمًا: 23.3 أدخل رقمًا: -4.2 أدخل رقمًا: 3.4 أدخل رقمًا: 0 Sum = 25.0
عند استخدام الدواملي، يجب أن نكون دقيقين دائمًا. لأنه إذا قمنا بضبط تعبير التحقق بشكل غير صحيح بحيث لا يصبح صحيحًا أبدًا، فإن دواملي وdo...while ستعمل دائمًا.
هذا ما يعرف بـ while غير محدود وdo...while.
//دواملي while غير محدود while (true) { //نص الجسم لـ while {}
مثال آخر
//دواملي while غير محدود int i = 100; while (i == 100) { System.out.print("Hey!"); {}
عملية دواملي do...while مشابهة جدًا لـ while.