Hoppa till innehåll
Varlig-guiden
Varligs startsida

Operatorer, jämförelser och villkor

Den här sidan beskriver symboler och ord som kombinerar värden: aritmetik och prioriteringsregler, jämförelser som ger true eller false samt logiska och bitvisa operatorer. Använd den om en rad ger ett annat tal än väntat eller om du vill att anteckningen ska kontrollera något åt dig, till exempel om du håller budgeten.

Aritmetik

Operator Stavningar Exempel Resultat
Addera +, plus £12.50 + £4.30 £16.80
Subtrahera -, −, minus £20 - £4.50 £15.50
Multiplicera *, ×, times, multiplied by, placering direkt intill varandra 3 × £4.50, 2(3 + 4) £13.50, 14
Dividera /, ÷, divided by £60 / 4 £15.00
Potens ^, **, to the power of, raised to, exponent 2 ** 3, 2 raised to 10 8, 1,024
Rest mod, % (mellan två tal) 50 mod 6, 50 % 6 2
Kvadratrot √, sqrt(...), square root of √144 12
I kvadrat / i kubik ², ³ 3³ 27
Fakultet !, factorial(...) 5!, factorial(5) 120

Aritmetik fungerar med tal utan enheter, valutabelopp och storheter med enheter. Resultatet behåller valutan eller enheten:

calc
£12.50 + £4.30 ger £16.80
3 * £4.50 ger £13.50
£1,000 * 1.05^3 ger £1,157.63
6 times 7 ger 42
100 minus 37.5 ger 62.5

Implicit multiplikation innebär att du utelämnar *, som i 2(3 + 4) eller 2π. Implicit multiplikation beskriver när det fungerar och när det inte gör det.

Räkneordning

Beräkningar följer de vanliga prioriteringsreglerna från skolmatematiken:

  1. Parenteser.
  2. Fakulteter, till exempel 5!.
  3. Potenser, beräknade från höger till vänster: 2^3^2 är 2^9, vilket är 512.
  4. Ett ledande minustecken, tillämpat efter potensen: -2^2 är -4, medan (-2)^2 är 4.
  5. Multiplikation, division och mod, från vänster till höger.
  6. Addition och subtraktion, från vänster till höger.

Att utelämna * ändrar inte ordningen. Därför kvadrerar 2x^2 först x och fördubblar sedan resultatet, precis som en formel i en lärobok.

Det innebär att multiplikation utförs före en intilliggande addition, vilket kan ge oväntade resultat när du summerar en räkning:

calc
£85 - £12.50 * 2 ger £60.00
(£85 - £12.50) * 2 ger £145.00
£120 / 4 / 2 ger £15.00

När du är osäker, lägg till parenteser. De skadar aldrig, och de gör anteckningen lättare att läsa senare.

Ett rottecken gäller värdet direkt efter det, så √9 + 16 är 19. Sätt in hela uttrycket i parenteser för att ta roten ur en summa:

calc
√(9 + 16) ger 5

Rester

mod ger vad som blir över efter division. Det är användbart för att dela upp saker i grupper:

calc
eggs = 50
eggs mod 6 ger 2
floor(eggs / 6) ger 8

Femtio ägg fyller åtta lådor med sex ägg i varje, och två blir över.

% mellan två tal ger också resten vid division, även utan mellanslag före det andra talet: både 50 % 6 och 50% 6 ger 2. Ett % utan något efter sig bildar en procentsats (50%), som beskrivs under Procent.

Fakulteter

Sätt ! direkt efter ett tal, ett namn eller en avslutande parentes för att beräkna dess fakultet:

calc
5! ger 120
runners = 4
runners! ger 24
3! + 2 ger 8
5!=4 ger true

Fakultet beräknas före en intilliggande potens, så 2^3! är 2⁶, vilket är 64. ! följt av = betyder fortfarande "inte lika med", som sista raden visar. factorial(5) ger samma resultat som 5!.

Jämförelse

==, !=, <, <=, > och >= jämför två värden och ger true eller false. De fungerar med tal utan enheter, belopp i samma valuta och storheter av samma slag, även om de använder olika enheter:

calc
budget = £400
spent = £365
spent <= budget ger true
spent == budget ger false
spent != budget ger true
5 km == 5,000 m ger true
90 min >= 1.5 hours ger true
2 kg < 2,500 g ger true

Enheterna omvandlas före jämförelsen, så 1 mile > 1.5 km ger true. Att jämföra olika slags storheter, till exempel kilogram och meter, ger felet incompatible units.

Det här gör inte jämförelser

  • Kedjor. 5 < x < 10 stöds inte. Kombinera istället två jämförelser: 5 < x && x < 10.
  • Unicode-symboler. ≠, ≤ och ≥ känns inte igen. Använd !=, <= och >=.
  • Datum. Du kan inte jämföra två datum med < eller >. Subtrahera dem och jämför skillnaden med en tidslängd:
calc
deadline = 30 September 2026
booked = 14 September 2026
deadline - booked ger 2 weeks 2 days
deadline - booked >= 7 days ger true

Logiska operatorer

Kombinera jämförelser med && (båda måste vara sanna) eller || (minst en måste vara sann). Orden and och or fungerar på samma sätt mellan två jämförelser.

calc
distance = 5 km
run time = 27 min
distance >= 5 km && run time < 30 min ger true
distance >= 10 km || run time < 25 min ger false
distance >= 10 km or run time < 30 min ger true

true och false kan skrivas direkt och kombineras med && och ||:

calc
true || false ger true
true && false ger false

Vissa skrivsätt som du kanske förväntar dig stöds inte:

  • and och or fungerar bara mellan jämförelser. true and false fungerar inte. Skriv true && false.
  • Det finns ingen negationsoperator: not true och !true fungerar inte. Jämför med false i stället, som i (spent > budget) == false.
  • or är inte en reservlösning för fel: 1/0 or 5 ger inte 5.

Använda jämförelser i villkorsuttryck

En jämförelse är mest användbar inuti if … then … else …, vilket väljer ett värde beroende på svaret:

calc
basket = £34.50
if basket >= £40 then £0 else £3.99 ger £3.99

Villkor täcker hela syntaxen, inklusive else if, postfix if och unless, samt tilldelning inuti en gren.

Bitvisa operatorer

Heltal stöder de bitvisa operatorerna & (och), | (eller), xor, << (vänsterskift) och >> (högerskift). Orden AND, OR och XOR med stora bokstäver fungerar också. De är främst användbara vid programmering, till exempel för färgvärden och filbehörigheter.

calc
12 & 10 ger 8
12 | 10 ger 14
12 xor 10 ger 6
12 AND 10 ger 8
1 << 10 ger 1,024
1024 >> 3 ger 128

Resultatet visas som ett vanligt tal. Lägg till to binary, in hex eller to octal för att visa det i den bas du arbetar med:

calc
0o644 | 0o111 to octal ger 0o755
colour = 0xFF8800
(colour >> 8) & 0xFF ger 136

Skiften beräknas före &, | och xor, men parenteser gör en rad som färgexemplet mycket lättare att följa.

Samlat exempel

En månatlig budgetkontroll som använder aritmetik, jämförelser och logik tillsammans:

calc
# September budget
take home = £2,400
rent = £1,050
bills = £230
groceries = 4 * £65 ger £260.00
left over = take home - rent - bills - groceries ger £860.00
rent / take home as % ger 43.75%
left over > £500 ger true
left over > £500 && rent <= take home * 45% ger true

I groceries sker multiplikationen innan något adderas, och left over utför subtraktionerna från vänster till höger. De två sista raderna gör anteckningen till en kontroll: resultatet är true så länge mer än 500 £ återstår och hyran är högst 45 % av nettolönen. Det blir false så snart något av villkoren inte längre uppfylls.