English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
فرق & و && في Java: & هو عمودي وأيضًا عمودي منطقي، يمكن أن يكون الجانبان int أو تعبير boolean، عندما يكون الجانبان int، يجب تحويل الجانبين إلى أرقام ثنائية قبل الأداء، بينما يجب أن تكون الجانبان في عمودي قصير (&&) تعبيرات boolean.
أعتقد أن العديد من الناس يواجهون هذا في تعلم Java أو عند المقابلات
& و &&
لكن، إذا لم تفهم حقًا معانيهم، سيكون هذا عائقًا كبيرًا في تفكيرك
في هذا المقال، بعد أن أنتهيت من قراءته، ستجد أنه من السهل التمييز بينهم
هذا هو تجربتي
/**
*
*/
package com.b510.test;
/**
* @author Jone Hongten
* @create date: 2013-11-2
* @version 1.0
*/
public class Test {
public static void main(String[] args) {}}
String str = null;
if(str != null && !"".equals(str)){
// قم ببعض الأشياء
}
if(str != null & !"".equals(str)){
// قم ببعض الأشياء
}
}
}
قد نكون بعض الشيء غير واضحين، دعونا نرى مشاكل الدائرة الخاصة بـ & و &&:
بالنسبة لـ: &&
if(str != null && !"".equals(str))
عندما يكون: str != null، سيتم تنفيذ: !"".equals(str) بعد ذلك
إذا كان: str != null falsy، فإن البرنامج في هذه الحالة سيكون في حالة تقصير، فإن: !"".equals(str) لن يتم تنفيذه
لكن بالنسبة لـ: &
if(str != null & !"".equals(str))
بغض النظر عن نتائج: str != null (أي true، false)، سيتم تنفيذ: !"".equals(str)
ملخص مشاكل الدائرة:
بالنسبة لـ:& --> بغض النظر، سيتم تنفيذ البرنامج على الجانبين من الفاصلة "&"
بالنسبة لـ:&& --> فقط عندما يكون الجانب الأيسر من الفاصلة "&&" صحيح (true)، سيتم تنفيذ الجانب الأيمن من الفاصلة
دعونا نتحدث عن قواعد الحساب:
بالنسبة لـ:& --> إذا كان أي جانب من الجانبين falsy، فإن النتيجة falsy؛ فقط عندما يكون كلا الجانبين truthy، فإن النتيجة truthy
بالنسبة لـ:&& --> إذا كان الجانب الأيسر من الفاصلة falsy، فإن النتيجة falsy؛ إذا كان الجانب الأيسر من الفاصلة و الجانب الأيمن من الفاصلة truthy، فإن النتيجة truthy
شكرًا على القراءة، آمل أن تساعدكم، شكرًا لدعمكم لموقعنا!