2017-02-17 3 views
0

Ich möchteC# Bool-Operanden Verwendung

A B = 
T T T 
F T F 
T F F 
F F F 

ich die folgenden Ergebnisse haben diese Klausel verwende es

A || B 

zu erreichen, aber es bietet keine korrekten Ergebnisse.

Verwende ich einen falschen Operanden?

+7

Verwendung und Operator A && B –

+1

@HimBromBeere Becuase '' || ist ein Logikoperator in C#? – InBetween

+1

@InBetween Das gilt für viele Sprachen. – HimBromBeere

Antwort

4

Allthough alle anderen Antworten richtig sind, würde Ich mag darauf hinweisen, dass der Bediener Sie fordern weder || noch &&. Der Operator, der genau das tut, wonach Sie fragen, ist & (und das Äquivalent, das Sie irrtümlicherweise verwenden, wäre |).

Und was ist der Unterschied? || und && sind Kurzschließer. Was bedeutet das? Dies bedeutet, dass auf der rechten Seite des Bedieners nur ausgewertet wird, wenn die linke Seite true ist. Das funktioniert nicht mit den nicht Kurzschluss Versionen der Operatoren passiert (die wirklich bolean logischen und und oder Betreiber):

public bool True() 
{ 
    Console.WriteLine("True called."); 
    return true; 
} 

public bool False() 
{ 
    Console.WriteLine("False called."); 
    return false; 
} 

var b1 = False() && True(); //b1 will be false and "False called." will be 
          //printed on the console. 

var b2 = False() & True(); //b2 will be false and "False called. True called." 
          //will be printed on the console. 
3

Sie möchten eine and, aber Sie haben eine or verwendet.

+2

Offensichtlich ist es dem OP nicht sehr klar, wie genau diese Operatoren funktionieren. Eine kleine Erläuterung dazu würde die Antwort wirklich verbessern –

2

Verwenden && (was bedeutet, 'und')

|| Mittel 'oder'

+2

Offensichtlich ist es dem OP nicht sehr klar, wie genau diese Operatoren funktionieren. Eine kleine Klarstellung würde die Antwort wirklich verbessern –

3

Bin ich einen falschen Operanden verwenden?

Ja, Sie sind.

Sie benötigen die UND&& Betreiber, die nur wahr ist, wenn alle Bedingungen wahr sind.

Sie verwenden den OR|| Operator, die Sie wahr geben wird, auch wenn eine der Bedingungen wahr sind.

Verwenden Sie die UND&& Operator statt OR||