If-else in linguaggio di programmazione C ++ [chiuso]

-2

Sono un po 'confuso su questo codice. Perché il blocco else viene eseguito?

Per favore, spiegalo.

int a=10,b=20;
char x=1,y=0;
if(a,b,x,y){
    cout << "A" << endl;
}else{
    cout << "B" << endl;      
}
    
posta Tomb 23.01.2015 - 09:47
fonte

1 risposta

12

In base alla questa pagina Wiki:

In the C and C++ programming languages, the comma operator (represented by the token ,) is a binary operator that evaluates its first operand and discards the result, and then evaluates the second operand and returns this value (and type).

Quindi: if(a,b,x,y){ prenderà in considerazione solo il valore di y per la parte if effettiva, che ha un valore di 0 che valuterà a false , causando così else parte del codice da eseguire.

EDIT: Detto questo, il codice che hai postato non ha molto senso. L'operatore virgola valuterà e scarterà il risultato (diverso dall'ultimo elemento). Ciò sarebbe utile se fosse necessario concatenare una serie di metodi che dipendono l'uno dall'altro e decidere cosa fare utilizzando il risultato dell'ultima.

    
risposta data 23.01.2015 - 09:51
fonte

Leggi altre domande sui tag