Det fungerar faktiskt som KaptenDubbe skrivit med !=
, eftersom operanderna är bool-uttryck. Villkoret kommer alltså bli sant när true != false
eller false != true
, d.v.s. när ett (och endast ett) av delvillkoren är sant.
Skillnaden mot att använda ||
är att ||
även kommer ge sant när båda delvillkoren är sanna, men det spelar ingen roll här eftersom fahr
inte kan vara både mindre än min_temp
och större än max_temp
samtidigt.
En annan skillnad är att det är enkelt att säga vad koden betyder när man använder ||
: "medan fahr är mindre än min_temp eller fahr är större än max_temp". Använder man !=
istället så får koden en helt annan betydelse som är mycket svårare att uttrycka i ord, och det blir allt annat än uppenbart vad koden faktiskt gör.
Att använda !=
är även sämre ur prestandasynpunkt, eftersom !=
måste evaluera båda operanderna för att kunna se om de är olika eller ej, medan ||
kan hoppa över att evaluera den högra operanden ifall den vänstra är sann.
Det går alltså att skriva som KaptenDubbe gjort i det här fallet, men det är nästan helt säkert ett misstag att göra det.