Es gibt ein if-else, gibt es eine Weder Nor-Aussage?

8

Gibt es eine neither A nor B -Syntax?

    
H4cKL0rD 13.01.2010, 07:56
quelle

11 Antworten

48

Obwohl es keine eingebaute Syntax dafür gibt, würde ich vorschlagen, dass Sie sich die Liste der unterstützten logischen Operatoren und dann sorgfältig De Morgans Gesetze . Ausreichende Kenntnisse in diesen beiden Feldern ermöglichen es Ihnen, jede logische Anweisung in if-else if -Syntax zu schreiben.

BEARBEITEN: Um Ihre Frage vollständig zu beantworten (obwohl dies bereits in anderen Antworten gemacht wurde), könnten Sie eine solche Aussage wie folgt schreiben:

%Vor%     
David Božjak 13.01.2010, 08:02
quelle
71

Oh ... du wolltest das Schlüsselwort "ist nicht"?

  

VB fügt Is not Keyword

hinzu      

(Newswire 8-19-2004)

     

Microsoft hat angekündigt, dass Visual   Basic fügt das Schlüsselwort "Ist nicht" hinzu   die Sprache. Laut einer Quelle auf   das VB.NET Team "Mit VB wollen wir die   Sprache, um so zu arbeiten, wie du denkst.   Umfangreiche Usability-Studien haben   demonstriert uns den Nutzen von   Hinzufügen ist nicht zur Sprache. "

     

Hinzufügen des Keywords würde erlauben   solche Syntax wie

%Vor%      

Nach der Quelle "Wir sind nur   versuchen, mit den Fortschritten in der   Englische Sprache, die, wie Sie wissen,   ändert sich fast so schnell wie   Technologie selbst. "Das VB-Team   glaubt, dass nicht bereit ist   Endlich ein voll unterstütztes Keyword sein   in der englischen Sprache , und sie   das Gefühl, dass, wenn sie nicht die   Stichwort in dieser Version können sie fallen   gut hinter Englisch vor ihrem nächsten   Möglichkeit, VB zu aktualisieren. Allerdings heiß   Debattiert ist, was "nicht" gleichzusetzen ist   zu. In seiner beliebtesten Form, der   Oberhalb der Codezeile würde bedeuten:

%Vor%      

Allerdings ist jeder 2. Klasse Englisch   Lehrer hat deutlich gemacht, dass "nicht   Nichts bedeutet "eigentlich"   Etwas ", da es ein doppelt negatives ist.   Das heißt, die richtige Equivelant würde   sei

%Vor%      

Microsoft hat es nicht eilig zu eilen   durch diese Entscheidung, staatliche Quellen,   "Schau, zwischen VB.NET Beta 1 und Beta   2, mussten wir die Definition von "true" ändern . Wir wollen nicht gehen   wieder durch. "

     

Aber Sprachpuristen erklären das   dieser ganze Ansatz ist fehlgeleitet,   zu bemerken, dass "ist nicht" eine Kontraktion ist   für "bin nicht" und sage "Wenn ThisThing   Bin nicht nichts "ist nur schlechte Grammatik.   Bessere Alternativen, würden sie sagen   inkl. Resurcting i'n't, wie in "If   ThisThing I'n't Nothing ". Aber auch   Dies ist möglicherweise nicht weit genug Staaten   Linguist Jacque Leblanc: "Ich bestehe darauf   dass die Verewigung des Doppelten   Negativ ist die Ursache dafür   Problem, aber bis jetzt ist niemand wirklich   bereit, das Offensichtliche zu diskutieren   Elefant im Raum. Der wahre   Lösung wäre, 'Wenn   ThisItem ist etwas dann. '"

     

Microsoft wird auch berichtet   Experimentieren mit "AsIf", "Vielleicht",   und "Totally". Außerdem "Fang"   wird wahrscheinlich durch "Doh!" ersetzt werden,   und "Endlich" wird durch ersetzt   "Was auch immer".

Quelle: Ссылка

    
Jeff Atwood 13.01.2010 08:54
quelle
13

Um "wenn weder A noch B" zu kodieren:

%Vor%

oder:

%Vor%     
ChrisW 13.01.2010 08:00
quelle
9

Hier geht's:

%Vor%     
UncleBens 13.01.2010 09:54
quelle
2

Nein, gibt es nicht.

    
Paul Mitchell 13.01.2010 07:59
quelle
1

nein. Dasselbe erreichen Sie mit if in Verbindung mit ! (nicht), && (und) und || (oder)

    
Johannes Rudolph 13.01.2010 08:00
quelle
1
%Vor%

das letzte else ist dasselbe wie:

%Vor%     
Filip Ekberg 13.01.2010 08:00
quelle
0

Ich denke, Sie sollten Ссылка ansehen und sich auf den Teil "Logical Operators" konzentrieren.

    
Jacek 13.01.2010 07:59
quelle
0

Ja. Die & amp; & amp; und || Operatoren in C führen Flusskontrolle durch, und alle Ausdrücke sind Anweisungen, also & amp; & amp; und || Formularflusssteueranweisungen. Die Ausdrücke des Ausdrucks werden bewertet, bis ihr Wert bekannt ist, so dass & amp; & amp; wird eine Reihe von wahren Ausdrücken und || ausführen führt eine Reihe falscher Ausdrücke aus. Als || (OR) geht so lange weiter, wie seine Argumente falsch sind (NOT), es kann eine Weder-Noch-Anweisung genannt werden.

%Vor%

"Aber," sagen Sie, "das ist nicht wirklich eine Flusssteuerungsaussage. Sie betrifft nur die Flusssteuerung innerhalb einer Anweisung." Messe Nuff. Der Operator throw ist eigentlich auch ein Ausdruck mit dem Typ void . So können wir diesen, ähm, Stil auf mehrere Zeilen erstrecken.

%Vor%

Ich hoffe, dass Sie das wollten ...

    
Potatoswatter 13.01.2010 17:13
quelle
0

Ruby hat etwas von dieser Art von syntaktischem Zucker:

  • es sei denn ist äquivalent zu if!
  • collection.empty? kann als Äquivalent zu ! collection.any verwendet werden?
micho 16.01.2010 14:25
quelle
0

meinst du unless von Perl?

%Vor%

Seltsamerweise gibt es kein else unless , nur (das Äquivalent von) else if .

    
Marius 22.06.2010 07:28
quelle

Tags und Links