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:
£12.50 + £4.30 ger £16.803 * £4.50 ger £13.50£1,000 * 1.05^3 ger £1,157.636 times 7 ger 42100 minus 37.5 ger 62.5Implicit 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:
- Parenteser.
- Fakulteter, till exempel
5!. - Potenser, beräknade från höger till vänster:
2^3^2är2^9, vilket är 512. - Ett ledande minustecken, tillämpat efter potensen:
-2^2är -4, medan(-2)^2är 4. - Multiplikation, division och
mod, från vänster till höger. - 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:
£85 - £12.50 * 2 ger £60.00(£85 - £12.50) * 2 ger £145.00£120 / 4 / 2 ger £15.00Nä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:
√(9 + 16) ger 5Rester
mod ger vad som blir över efter division. Det är användbart för att dela upp saker i grupper:
eggs = 50eggs mod 6 ger 2floor(eggs / 6) ger 8Femtio ä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:
5! ger 120runners = 4runners! ger 243! + 2 ger 85!=4 ger trueFakultet 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:
budget = £400spent = £365spent <= budget ger truespent == budget ger falsespent != budget ger true5 km == 5,000 m ger true90 min >= 1.5 hours ger true2 kg < 2,500 g ger trueEnheterna 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 < 10stö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:
deadline = 30 September 2026booked = 14 September 2026deadline - booked ger 2 weeks 2 daysdeadline - booked >= 7 days ger trueLogiska 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.
distance = 5 kmrun time = 27 mindistance >= 5 km && run time < 30 min ger truedistance >= 10 km || run time < 25 min ger falsedistance >= 10 km or run time < 30 min ger truetrue och false kan skrivas direkt och kombineras med && och ||:
true || false ger truetrue && false ger falseVissa skrivsätt som du kanske förväntar dig stöds inte:
andochorfungerar bara mellan jämförelser.true and falsefungerar inte. Skrivtrue && false.- Det finns ingen negationsoperator:
not trueoch!truefungerar inte. Jämför medfalsei stället, som i(spent > budget) == false. orär inte en reservlösning för fel:1/0 or 5ger 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:
basket = £34.50if basket >= £40 then £0 else £3.99 ger £3.99Villkor 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.
12 & 10 ger 812 | 10 ger 1412 xor 10 ger 612 AND 10 ger 81 << 10 ger 1,0241024 >> 3 ger 128Resultatet 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:
0o644 | 0o111 to octal ger 0o755colour = 0xFF8800(colour >> 8) & 0xFF ger 136Skiften 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:
# September budgettake home = £2,400rent = £1,050bills = £230groceries = 4 * £65 ger £260.00left over = take home - rent - bills - groceries ger £860.00rent / take home as % ger 43.75%left over > £500 ger trueleft over > £500 && rent <= take home * 45% ger trueI 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.