Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

العبارات المعنونة

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 35 من 59.

تسمح لك جمل التسمية (Label statements) في Java بتمييز نقاط محددة في الكود الخاص بك والتحكم في التدفق باستخدام جمل break و continue مع هذه التسميات. وتعتبر التسميات مفيدة بشكل خاص عند التعامل مع الحلقات المتداخلة.

قم بإنشاء حلقة متداخلة مع تسمية (label):

outer: for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
       if(i * j == 4) {
           break outer;
       }
   }
}

استخدم continue مع تسمية (label):

firstLoop: for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
       if(j == 1) {
           continue firstLoop;
       }
       System.out.println(i + "," + j);
   }
}
challenge icon

التحدي

سهل

قم بإنشاء طريقة تسمى findNumber تأخذ ثلاث وسائط:

  1. مصفوفة ثنائية الأبعاد من الأعداد الصحيحة (grid)
  2. عدد صحيح (target) للبحث عنه
  3. قيمة منطقية (breakEarly) تحدد ما إذا كان يجب أن يتوقف البحث بعد العثور على أول ظهور. يجب أن تستخدم الطريقة حلقة تكرار مسماة (labeled loop) للبحث عن الرقم المستهدف وطباعة كل موقع يتم العثور عليه فيه. إذا كانت قيمة breakEarly هي true، فيجب أن تتوقف بعد العثور على أول ظهور. يجب طباعة كل عنصر يتم العثور عليه بالتنسيق التالي: Found at: rowIndex,colIndex

ورقة مرجعية

تسمح لك عبارات التسمية (Label statements) في Java بتمييز نقاط محددة في التعليمات البرمجية الخاصة بك والتحكم في التدفق باستخدام عبارات break و continue مع هذه التسميات.

إنشاء حلقة متداخلة مع تسمية:

outer: for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
       if(i * j == 4) {
           break outer;
       }
   }
}

استخدام continue مع تسمية:

firstLoop: for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
       if(j == 1) {
           continue firstLoop;
       }
       System.out.println(i + "," + j);
   }
}

جرّب بنفسك

import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;

public class Main {
    public static void findNumber(int[][] grid, int target, boolean breakEarly) {
        // اكتب كودك هنا
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // قراءة سلسلة JSON التي تمثل مصفوفة ثنائية الأبعاد
        String gridString = scanner.nextLine();
        // قراءة الرقم المستهدف
        int target = Integer.parseInt(scanner.nextLine());
        // قراءة علم الإنهاء المبكر (breakEarly)
        boolean breakEarly = Boolean.parseBoolean(scanner.nextLine());
        
        Type gridType = new TypeToken<int[][]>(){}.getType();
        int[][] grid = new Gson().fromJson(gridString, gridType);
        
        findNumber(grid, target, breakEarly);
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow