現在、 && と || を使用しています。AND と OR の代わりに、それが私が教えられた方法だからです。ただし、ほとんどの言語では、どちらも有効な構文です。どの言語でも、どちらか一方に利点はありますか?
この質問を検索しようとしましたが、少し難しいです。入力が正しく解釈されません。
現在、 && と || を使用しています。AND と OR の代わりに、それが私が教えられた方法だからです。ただし、ほとんどの言語では、どちらも有効な構文です。どの言語でも、どちらか一方に利点はありますか?
この質問を検索しようとしましたが、少し難しいです。入力が正しく解釈されません。
Perlには{&&||の4つすべてがあります およびまたは}ですが、優先順位が異なります。「and」と「or」の優先順位は非常に低いため、「complex-function-call-here or die $!」などの操作を実行できます。そして、あなたはそれを望まなかった左側の何かを誤って「または」丸呑みにすることはありません。
「どの言語でも、どちらか一方に利点はありますか?」と尋ねます。もちろん、これはプログラミング言語に依存します。
and
と&&
(および対応するor
と)の両方を実装する言語は||
、次の 2 つの方法のいずれかを実行します。
どちらもまったく同じように動作します。その場合、一方を他方よりも使用しても、言語によって提供される利点はありません。
それぞれが異なる動作をします。どちらの場合でも、どちらか一方を使用することで異なる動作が得られるという利点があります。
これは少しばかげているように聞こえますが、特定の言語について話さなくてもわかるように、実際には非常に具体的です。あなたの質問は明らかにすべての言語について知りたいと思っていますが、言語ごとに回答する必要がある質問です。
言語にもよりますが、PHP では && と "and" の使用には注意が必要です。私がよく使うのは「&&」と「||」です。
http://us3.php.net/manual/en/language.operators.logical.php
$g = true && false; // $g will be assigned to (true && false) which is false
$h = true and false; // $h will be assigned to true
一部の言語で&&
は、 よりも演算子の優先順位が高くなりAND
ます。
優先順位の問題がない限り、読みやすさには違いがあると思います。次のことを考慮してください。
if (&x == &y && &y == &z) {
// ..
}
#define AND &&
if (&x == &y AND &y == &z) {
// ..
}
両方が正常に機能する場合、それは本当に個人的な好みだと思います。ほとんどの場合、次のような同じバイナリ コードにコンパイルされます。
&& = 同じキーの 2 回のキーストローク。AND = 異なるキーの 3 回のキーストローク。
どの言語を使用しているかはわかりませんが、一部の言語では、通常のブール演算子と短絡演算子が区別されます。たとえば、以下は MATLAB の通常のブール演算子です。
C = or(A,B);
C = A | B; % Exactly the same as above
ただし、これは短絡演算子です。
C = A || B;
短絡構文は最初の引数を評価し、値によっては 2 番目の引数の評価をスキップする可能性があります。たとえば、Aが既に true の場合、結果が true であることが保証されているため、OR 演算でBを評価する必要はありません。これは、Bが何らかの高価な計算を伴う論理演算に置き換えられる場合に役立ちます。
これは、いくつかの言語の短絡演算子とその構文について説明しているウィキペディアのリンクです。