العبارات المعنونة
جزء من قسم 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);
}
}التحدي
سهلقم بإنشاء طريقة (method) تسمى findNumber تأخذ ثلاث وسائط:
- مصفوفة ثنائية الأبعاد من الأعداد الصحيحة (
grid) - عدد صحيح (
target) للبحث عنه - قيمة منطقية (
breakEarly) تحدد ما إذا كان يجب إيقاف البحث بعد العثور على أول ظهور. يجب أن تستخدم الطريقة حلقة تكرارية مسماة (labeled loop) للبحث عن الرقم المستهدف وطباعة كل موقع يتم العثور عليه فيه. إذا كانت قيمة breakEarly هي true، فيجب أن تتوقف بعد العثور على أول ظهور. يجب طباعة كل عنصر يتم العثور عليه بالتنسيق التالي:Found at: rowIndex,colIndex
جرّب بنفسك
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 التي تمثل مصفوفة 2D
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);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم