&& og || vs. & og |

I et logisk uttrykk med && og || sjekkes ikke hele uttrykket hvis det ikke er nødvendig:

int teller = 0;
if (true || ++teller > 0)
{
   Console.WriteLine("Uberørt teller: " + teller);
   # skriver ut: 'Uberørt teller: 0'
}

Her blir ikke ++teller > 0 kjørt siden true var nok til å fortsette videre.

Om man derimot bruker | blir resultatet annerledes:

int teller = 0;
if (true | ++teller > 0)
{
   Console.WriteLine("Berørt teller: " + teller);
   # skriver ut: "Berørt teller: 1"
}

Nå er teller forandret fordi hele det logiske uttrykket ble sjekket.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.