Reham Numan نشر 9 يونيو 2021 أرسل تقرير نشر 9 يونيو 2021 احاول مقارنة عددين من نوع Integer ودوما يعطيني false في جافا مع ان القيمتين يكونان متساويتين؟ 1 اقتباس
0 محمد أبو عواد نشر 9 يونيو 2021 أرسل تقرير نشر 9 يونيو 2021 هل يمكنك ارفاق الكود لنحاول حل المشكلة؟ اقتباس
1 Ali Haidar Ahmad نشر 9 يونيو 2021 أرسل تقرير نشر 9 يونيو 2021 (معدل) ربما لأنك تستخدمين المعامل ==. وهو معامل نستخدمه مع ال primitive data types أي مع أنواع البيانات البدائية مثل int و float و double .. إلخ. لكنها لاتصلح للاستخدام مع البيانات من نوع object أي مع الكائنات لأنها في هذه الحالة ستقوم بمقارنة (المرجع) وليس القيمة التي يحملها. يجب استخدام التابع equal.مثلاً: import java.math.BigInteger; public class JavaApplication19 { public static void main(String[] args) { BigInteger x = new BigInteger("15"); // object متغير من النمط BigInteger y = new BigInteger("15"); // object متغير من النمط System.out.println(x.equals(y)); // true System.out.println(x==y); // false } } تم التعديل في 9 يونيو 2021 بواسطة Ali Haidar Ahmad 2 اقتباس
0 Sam Ahw نشر 9 يونيو 2021 أرسل تقرير نشر 9 يونيو 2021 من الصعب مساعدتك دون روئية أي جزء من الكود. ولكن بفرض أنه يتم استخدام == في عملية المقارنة، وهذا يعني أنه سيتم مقارنة في حال كان المتغيرين يدلان على نفس المكان في الذاكرة بدلاً من اختبار القيمة الحقيقية لكل متغيّر، وبالتالي ستعيد false. أما لاختبار قيم المتغيّرات من نوع integer يتم استخدام Integer.equals بدلاً من ==، مثال: if (firstNumber.equals(secondNumber){ System.out.println("true"); }else{ System.out.println("false"); } 1 اقتباس
السؤال
Reham Numan
احاول مقارنة عددين من نوع Integer ودوما يعطيني false في جافا مع ان القيمتين يكونان متساويتين؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.