Frage

Zur Zeit bin ich mit && und || anstelle von AND und OR, weil das ist, wie ich gelehrt wurde. In den meisten Sprachen sind jedoch beide gültige Syntax. Gibt es irgendwelche Vorteile zu dem einen oder anderen in jeder Sprache?

Ich habe versucht für diese Frage zu suchen, aber es ist ein bisschen schwer. Es muss nicht interpretieren meine Eingabe korrekt.

War es hilfreich?

Lösung

Sie fragen: „Gibt es irgendwelche Vorteile zu dem einen oder anderen in jeder Sprache?“ Dies ist natürlich abhängig von der Programmiersprache.

Sprachen, die sowohl and und && (und entsprechend or und ||) implementieren wird es tun eine von zwei Möglichkeiten:

  • Beide verhalten sich genau die gleiche Weise. In diesem Fall gibt es keinen Vorteil durch die Sprache zur Verfügung gestellt einen über die andere zu verwenden.

  • Jeder verhält sich anders. In diesem Fall ist der Vorteil, dass Sie durch die Verwendung der einen oder anderen ein anderes Verhalten bekommen.

Das klingt alles ein bisschen witzig, aber es ist wirklich so spezifisch wie man zu sprechen, ohne über eine bestimmte Sprache zu bekommen. Ihre Frage ausdrücklich will darüber wissen, alle Sprachen, aber es ist eine Frage, die pro Sprache beantwortet werden muss.

Andere Tipps

Perl hat alle vier {&& || und oder}, aber sie unterscheiden sich in ihren Vorrang. „Und“ und „oder“ haben wirklich niedrigen Rang, so dass Sie Dinge wie tun kann „komplex-Funktion anruf hier oder sterben $!“ und Sie werden nicht zufällig haben „oder“ schlürfen etwas auf der linken Seite, die Sie wollte nicht, daß es.

es ist abhängig von der Sprache, sondern auf PHP, würde ich über die Verwendung von && versus „und“ vorsichtig sein. Die, die ich häufig verwenden sind „&&“ und „||“

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

In einigen Sprachen && eine höhere Priorität als Betreiber AND hat.

Wenn beide gut funktioniert, dann würde ich sagen, es ist wirklich persönliche Präferenz, in den meisten Fällen sie in gleichen binären Code kompiliert werden wie folgt aus:. 11100010001000101001001010 [nicht echten Code, um nur ein Beispiel]

&& = zwei Tastendrücken des gleichen Schlüssel. UND = drei Tastenanschläge von verschiedenen Tasten.

Ich bin mir nicht sicher, welche Sprache Sie verwenden, aber einige Sprachen unterscheiden zwischen einem normalen Booleschen Operator und einem Kurzschluss Betreiber. Zum Beispiel sind die folgenden normalen Booleschen Operatoren in MATLAB:

C = or(A,B);
C = A | B;  % Exactly the same as above

Dies ist jedoch ein Kurzschluss Betreiber:

C = A || B;

Die Kurzschluss Syntax wird das erste Argument bewerten und dann, je nach dem Wert, wird möglicherweise überspringt das zweite Argument zu bewerten. Wenn zum Beispiel A ist schon wahr, B muss nicht für eine ODER-Verknüpfung ausgewertet werden, da das Ergebnis um wahr zu sein ist garantiert. Dies ist hilfreich, wenn B ist mit einer logischen Operation ersetzt, die eine Art von teuerer Berechnung beinhaltet.

Hier ist ein Wikipedia-Link Kurzschlussbetreiber und deren Syntax für ein paar diskutieren Sprachen.

Es sei denn, es keine Rang Fragen sind, würde ich sagen, es gibt Unterschiede in der Lesbarkeit. Betrachten Sie das folgende:

if (&x == &y && &y == &z) {
    // ..
}

#define AND &&
if (&x == &y AND &y == &z) {
    // ..
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top