Inom matematiken är en operation en handling där en eller flera operander med hjälp av en operator leder till en lösning. Operatorn kan vara ett av räknesätten och operander kan representeras av till exempel ett tal.
Vid problemlösning av tekniska tillämpningar är det vanligt att behöva göra flera numeriska beräkningar. Att initiera en beräkning i Java är enkelt eftersom de allra vanligaste räknesätten finns tillgängliga som standard i Java. Java tillhandahåller även standardklassen java.lang.Math
som innehåller flera vanliga matematiska beräkningar, så som upphöjt, roten ur och trigonometriska funktioner. I nästa avsnitt går vi igenom i detalj hur man kan använda sig av java.lang.Math
, men först tar vi standardbiblioteket!
Att initiera en beräkning i Java är enkelt eftersom de allra vanligaste räknesätten finns tillgängliga som standard i Java.
Nedan visas några av de vanligaste matematiska operationerna i Java som du bör ha koll på.
Beräkning | Notation | Datatyp resultat | Ex. int A = 10, int B = 4 |
---|---|---|---|
Addition | + | int | A + B = 14 |
Subtraktion | – | int | A – B = 6 |
Multiplikation | * | int | A * B = 40 |
Division | / | int | A / B = 2 |
Modulus | % | int | A % B = 2 |
Mindre än | < | boolean | A < B = false |
Större än | > | boolean | A > B = true |
Mindre än eller lika med | <= | boolean | A <= B = false |
Större än eller lika med | >= | boolean | A >= B = true |
Lika med | == | boolean | A == B = false |
Inte lika med | != | boolean | A != B = true |
De matematiska operationerna känner vi igen och är inga konstigheter. Men det är viktigt att vara noggrann med vilken datatyp du deklarerar till en variabel. Betrakta följande kod:
public class matematiska_operationer { public static void main(String[] args) { // Variabler av datatypen double double A = 10; double B = 4; System.out.println(A+B); System.out.println(A-B); System.out.println(A*B); System.out.println(A/B); } }
Vilket ger utskriften:
14.0 6.0 40.0 2.5
Vilket är resultat som vi förväntar oss av respektive matematiska operation. Men om A
, och B
istället är integers
, det vill säga heltal, får vi följande beteende:
public class matematiska_operationer { public static void main(String[] args) { // Variabler av datatypen integer int A = 10; int B = 4; System.out.println(A+B); System.out.println(A-B); System.out.println(A*B); System.out.println(A/B); } }
Ger utskriften:
14 6 40 2
En matematisk operation med en viss datatyp, kommer att resultera i ett resultat av samma datatyp.
Det vill säga, en matematisk operation med en viss datatyp, kommer att resultera i ett resultat av samma datatyp. Exempelvis vid divisionen 10/4, (som normalt blir 2.5), blir istället 2, eftersom en division av två integers kommer resultera i ett resultat av typen integer, det vill säga ett heltal. Decimaltecknet kommer alltså kapas av.
Absolut. Om vi tar samma exempel igen, fast med blandade datatyper:
public class matematiska_operationer { public static void main(String[] args) { // Variabler av blandade datatyper int A = 10; double B = 4; System.out.println(A+B); System.out.println(A-B); System.out.println(A*B); System.out.println(A/B); } }
så fås utskriften:
14.0 6.0 40.0 2.5
Vilket är samma resultat som vi fick vid fallet när båda variablerna var av datatypen double. Java har nämligen prioriteringsordningen att en matematisk operation som innehåller ett flyttal, kommer att resultera i ett flyttal. Eftersom vi utförde matematiska operationer med både heltal (integers) och flyttal (double), kommer Java prioritera flyttalet, alltså blir resultatet en double.
Den operation som brukar vara lite knepig att förstå till en början är Modulus, den returnerar resten vid en division. Vi ska ta ett exempel för att visa Modulus beräkningar. Säg att du har en kanelbullelängd som är 21 cm lång och sedan vill dela den i exakt 6 cm långa bitar (viktigt att dom är exakt 6 cm). Du kan då dela kanelbullelängden i tre bitar och vi har sedan 3 cm kvar av kakan, de 3 cm är vår rest.
Bilden visar hur vi har vår bit på 21 cm och sedan delar den med 6 och hur vi då får tre hela bitar och en bit som är 3 cm. Med andra ord, vi får svaret 3 rest 3
Vidare, nedan finns några exempel på Modulus beräkningar i Java
int x = 7; int y = 2; int mod = x % y; // mod blir då resten när vi delar 7 med 2 --> mod = 1 int x = 8; int Y = 4; int mod = x % y; // Här blir mod = 0, för att vi får ingen rest när vi delar 8 med 4 int x = 9; int y = 5; int mod = x % y; // Resten blir --> mod = 4
Avslutningsvis, det var ett par exempel och känns det fortfarande lite otydligt, lägg in kod i IntelliJ och testa dig runt. Räkna först vad du tror det ska bli och sedan kontrollerar du med hjälp av IntelliJ att det stämmer.
Jämförelseoperationerna använder vi för att avgöra om ett värde är större, mindre eller lika stort som ett annat värde. Vi tar samma exempel igen:
public class matematiska_operationer { public static void main(String[] args) { // Variabler av blandade datatyper int A = 10; int B = 4; System.out.println(A > B); // Är A större än B? System.out.println(A < B); // Är A mindre än B? System.out.println(A <= B); // Är A mindre eller lika stort som B? System.out.println(A >= B); // Är A större eller lika stort än B? System.out.println(A == B); // Är A exakt lika stort som B? } }
Ger utskriften:
true false false true false
Det vill säga om operationen är sann, resulteras true, och är operationen falsk, resulteras false. Datatypen som resulteras är alltså av typen boolean. Avslutningsvis, vi kommer gå igenom fler jämförelseoperationer och logiska operationer i avsnittet: Jämförelse och logiska operatorer i Java.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!