ان المعرف المتوقع الخطأ هو خطأ شائع جدًا يواجهه المبتدئين. في هذا القسم سنناقش ما هو الخطأ المتوقع في المعرف ، ال أسباب حدوث الأخطاء، و كيفية إصلاح الخطأ المتوقع في المعرف في Java. قبل الانتقال إلى الخطأ أولا سوف نفهم ماذا يكون معرفات في جافا .
معرفات في Java هي أسماء رمزية تستخدم لتحديد الهوية. يمكن أن يكونوا أ اسم الفئة، اسم المتغير، اسم الطريقة، اسم الحزمة، الاسم الثابت ، إلخ. ومع ذلك، في جافا ، هناك بعض الكلمات المحجوزة التي لا يمكن استخدامها كمعرف مثل int وconst وnew وdouble وenum وما إلى ذلك.
ما هو الخطأ المتوقع في المعرف؟
إنه خطأ ترجمة شائع جدًا يحدث في وقت الترجمة.
دعونا نفكر في برنامج Java التالي.
IdentifierError.java
public class IdentifierError { System.out.println('javatpoint'); }
عندما نحاول ترجمة البرنامج أعلاه، نحصل على الخطأ التالي.
يبدو الرمز جيدًا ولكن ليس كذلك. لأن بيان الطباعة ليس مكانه الصحيح. يجب أن يكون داخل طريقة/كتلة. لنقم بتغليف الكود داخل إحدى الطرق ثم تجميعه وتشغيله.
IdentifierError.java
public class IdentifierError { public static void main(String args[]) { System.out.println('javatpoint'); } }
انتاج:
javatpoint
أسباب حدوث الخطأ
قد تكون هناك الأسباب التالية لحدوث الخطأ:
- يحدث ذلك عندما لا يتوافق الكود مع قواعد بناء جملة Java.
- كتلة من التعليمات البرمجية مكتوبة مباشرة في نص الفصل بدلاً من داخل طريقة أو كتلة.
- قد يكون هناك أقواس مجعدة إضافية.
- الكود ليس في المكان المناسب
- يجب أن تحتوي كل عبارة على فاصلة منقوطة في النهاية.
كيفية إصلاح/حل الأخطاء؟
- ولا تنس وضع فاصلة منقوطة في نهاية العبارة.
- لا تضع التعليمات البرمجية مباشرة داخل نص الفصل.
- يجب أن يكون استدعاء الأساليب داخل أسلوب أو مُنشئ أو مُهيئ ثابت.
- اكتب كتلة من التعليمات البرمجية في المكان المناسب.
- إزالة الأقواس المتعرجة الزائدة.
IdentifierErrorExample1.java
public class IdentifierErrorExample1 { public static void main(String args[]) { System.out.println('Python'); } System.out.println('MySql'); System.out.println('Java'); } }
دعونا نجمع الكود أعلاه. لقد حصلنا على الخطأ المتوقع.
لاحظ الكود أعلاه، نجد أن هناك قوسًا متعرجًا إضافيًا هو سبب حدوث الخطأ. يمكن إصلاح الخطأ عن طريق إزالة قوس إضافي في السطر 6.
يحدث الخطأ أيضًا عندما نضع الفاصلة المنقوطة بدلاً من الفاصلة أثناء تعريف القيم التعداد . على سبيل المثال، خذ بعين الاعتبار التعليمة البرمجية التالية.
IdentifierErrorExample2.java
public class IdentifierErrorExample2 { public enum Vegetables { eggplant, tomato, broccoli; } public static void main(String args[]) { for(Vegetables veg : Vegetables.values()) System.out.println(veg); } }
لنقم بتشغيل الكود أعلاه. نحصل على الخطأ المتوقع في المعرف.
لإصلاح الخطأ، قم بإزالة الفواصل المنقوطة من قيم التعداد.
public enum Vegetables { eggplant, tomato, broccoli; }
في بعض الأحيان قد يكون الخطأ أكبر من ذلك بكثير. خذ بعين الاعتبار التعليمة البرمجية التالية.
IdentifierErrorExample3.java
import java.util.Arrays; public class IdentifierErrorExample3 { int[] primes = {17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73}; int max_val; max_val = nums[0]; for (int i = 1; i max_val) { max_val = primes[i]; } } System.out.println('Primes Numbers are: ' + Arrays.toString(primes)); System.out.println('Largest Prime is: ' + max_val); }
دعونا نجمع الكود أعلاه.
نحصل على الكثير من الأخطاء لأن بعض العبارات تكتب مباشرة داخل نص الفصل. لحل الخطأ، اكتب كامل كتلة التعليمات البرمجية داخل الطريقة ثم قم بتجميعها وتشغيلها.
IdentifierErrorExample4.java
import java.util.Arrays; public class IdentifierErrorExample4 { public static void main(String args[]) { int[] primes = {17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73}; int max_val; max_val = primes[0]; for (int i = 1; i max_val) { max_val = primes[i]; } } System.out.println('Primes Numbers are: ' + Arrays.toString(primes)); System.out.println('Largest Prime is: ' + max_val); } }
انتاج: