Yanıtlar:
Ben belirten MSDN C # belgelerine göre karıştı biraz duyuyorum
&
ve|
mantıksal operatörler olduğunu ve&&
ve||
koşullu operatörler bulunmaktadır. Ben görüşmeye devam et&&
,||
ve!
mantıksal operatörler, bu yüzden yanlış mıyım?
Hayır; haklısın
MSDN belgelerinde çok sayıda küçük, çoğunlukla önemsiz isimlendirme hatası vardır; Elimden geldiğince çoğunu çıkarmaya çalıştım, ama ne kadar ustaca yanlış ve yanıltıcı olmadığı durumlarda, her zaman akıllıca kullanılamaz. C # özelliğinin adı hakkında kesin bir ifade istiyorsanız, belirtime gidin.
Öyleyse: ilgili otorite Bölüm 7.11’de belirtilen C # şartnamesidir:
&
,^
Ve|
operatörler mantıksal operatörler olarak adlandırılır.
Daha sonra yerleşik mantıksal operatörleri tam sayı, numaralandırma, Boolean ve null-Boolean mantıksal operatörlerine ayırmak için devam eder. Kullanıcı tanımlı mantıksal operatörler de vardır; Ayrıntılar için teknik özelliklere bakın.
Bölüm 7.12’de
&&
Ve||
operatörler koşullu mantıksal operatörler olarak adlandırılır. Ayrıca “kısa devre yapan” mantıksal operatörler de denir.
Yani hepsi mantıksal operatörler. Bazıları şartlı mantıksal operatörlerdir .
Koşullu mantıksal operatörleri koşullu yapan nedir ? Biri, tipik olarak koşullu ifadelerde ( if
) veya koşullu ifadelerde ( ? :
) kullanıldığı için kesin bir tahminde bulunabilir . Asıl sebep şartname ile verilmiştir:
&&
Ve||
operatörler şartlı sürümleri şunlardır&
ve|
operatörler: operasyonx && y
operasyonu tekabülx & y
dışınday
yalnızca değerlendirilirx
yanlış değildir. İşlem, işlemex || y
karşılık gelirx | y
, ancaky
yalnızcax
doğru değilse değerlendirilir .
Koşullu mantıksal işleçler bu şekilde adlandırılır, çünkü sağ el işleneni, sol el işlenenin değerine bağlı olarak koşullu olarak değerlendirilir.
Koşullu mantıksal operatörlerin koşullu ifadeler için sadece "sözdizimsel şekerler" olduğunu belirterek bunu daha canlı görebiliriz . x && y
sadece yazmak için daha keyifli bir yoldur x ? y : false
ve x || y
sadece yazmak için daha keyifli bir yoldur x ? true : y
. Koşullu mantıksal ifadeler aslında koşullu ifadelerdir.
Ayrıca koşullu mantıksal operatörün kullanıcı tanımlı bir formu da var ve bu biraz zor. Detaylar için teknik özelliklere bakın.
Daha fazla okuma, eğer bu konu sizi ilgilendiriyorsa:
C # 'de bunların hepsi mantıksal işleçlerdir.
int x = 0xABCD & 0xFF // x == 0xCD
&&
ve ||
“ koşullu mantıksal operatörler” olarak adlandırılırlar çünkü kısa devre yaparlar.
bool someOtherCondition = true;
if (x == 0xEF && someOtherCondition) // someOtherCondition is not evaluated,
// because x == 0xEF is false
Bu terminolojinin dilden dilden farklı olduğunu unutmayın. C ve C ++ &&
ve ||
sadece Mantıksal Operatörler. Java &
ve Bitwise Operatörleri|
denir , C ve C ++ ise bunları Aritmetik Operatörler olarak sınıflandırır .
Nokta olduğunu &
ve |
edilmektedir bitsel onlar ve verim bit dizisi değerleri uygulanır, yani, operatörler. Ve bitwise programcılar arasında çok kullanılan bir terimdir.
Mesela 0xff & 0x00 == 0x00
, iken 0xff | 0x00 == 0xff
.
Ve &&
ve ||
koşullar uygulanır ve koşulları olağan değerlerinin elde edilir; yani true
ve false
.
Mesela true && false == false
, iken true || false == true
.
Bu nedenle &&
ve ||
denilebilir şartlı o programcılar arasında bir olağan dönem olmadığı halde, operatörler.
Tabii ki her C, C ++, Java ve C # programcısı hepsini biliyor. Ancak sanırım yanlış anlaşılma, "koşullu operatör" bizim programcılar tarafından sıkça kullanılan bir terim olmadığı için gerçekleşiyor.
|
değiştirilebilir olduğunu varsaymamanız kritik öneme sahip||
.