English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية Java الأساسية

تحكم في عملية بايثون

مجموعات بايثون

بايثون توجيهي (I)

بايثون توجيهي (II)

بايثون توجيهي (III)

معالجة الاستثناءات Java

قوائم بايثون (List)

قوائم بايثون (Queue)

مجموعات بايثون

مجموعات بايثون

مدخلات/مخرجات بايثون (I/O)

قراءات/كتابات بايثون

مواضيع بايثون أخرى

دورات بايثون while و do...while

في هذا الدرس، سنستخدم الأمثلة لتعلم كيفية استخدام الدورات while و do...while في بايثون، وسنتعلم أيضًا كيف تعمل الدورات while في برمجة الحواسيب

في برمجة الحواسيب، تستخدم الدورات لتكرار قطع معينة من الكود حتى يتم استيفاء شرط معين (يعاد اختبار التعبير كزائف)

تخيل أننا نحتاج إلى طباعة جملة 50 مرة على الشاشة. حسناً، يمكننا القيام بذلك من خلال استخدام جملة print 50 مرة (بدون استخدام دورة). ماذا عن طباعة المليون مرة لجملة واحدة؟ تحتاج إلى استخدام دورة. باستخدام الدورات، يمكننا كتابة جملة print مرة واحدة، ثم تشغيلها بقدر ما نريد.

هذا مجرد مثال بسيط يوضح أهمية الدورات في برمجة الحواسيب. هناك 3 أنواع من الدورات في لغة بايثون:لفور,while循环和do-while循环。

دورات while Java

Java 中 while循环的语法为:

while (testExpression) {
    // while循环体中的代码
{}

while循环如何工作?

在以上语法中,括号内的测试表达式(testExpression)为布尔表达式。如果测试表达式(testExpression)的计算结果为true,

  • while循环内的语句将被执行。

  • 然后,再次评估测试表达式(testExpression)。

这个过程一直进行到测试表达式被评估为false为止。如果测试表达式的计算结果为false,

  • 则while循环被终止。

While循环流程图

While循环的工作

示例1: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 逻辑运算符.

示例2:Java while循环

//编程以查找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

دو ... بينما في Java

دو ... بينما يشبه while، ولكن هناك فرق حاسم، حيث يتم تنفيذ جسم الدائرة مرة واحدة قبل فحص التعبير الاختباري.

هذه هي بنية جملة دو ... بينما

do {
   // كود داخل دو ... بينما
} while (testExpression);

كيف يعمل دو ... بينما؟

يتم تنفيذ جسم دو ... بينما مرة واحدة (قبل فحص التعبير الاختباري). فقط بهذا الشكل، سيتم فحص التعبير الاختباري.

إذا تم حساب التعبير الاختباري كـ true، يتم تنفيذ كود جسم الدائرة مرة واحدة، ثم يتم حساب التعبير الاختباري مرة أخرى. يتم استمرار هذا العمل حتى يتم حساب التعبير الاختباري كـ false.

عندما يكون التعبير الاختباري false، تنتهي دو .. بينما

رسومات عملية دو ... بينما

رسومات العملية الخاصة بدو ... بينما

مثال 3: دو ... بينما

هذا البرنامج يحسب مجموع الأرقام المدخلة من المستخدم حتى يتم إدخال 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.