For å kunne utføre rengeoppgaver i Java benytter man seg av aritmetiske operatorer som sammenkobler variabler i et algebraisk uttrykk. Som alle andre uttrykk i Java avsluttes et aritmetisk uttrykk med en semi-kolon.
Aritmetiske operatorer
Aritmetiske operatorer krever som regel ingen beskrivelse. Du bør kjenne igjen de fleste av de aritmetiske operatorene fra mattetimen.
| Operator navn |
Eksempel |
Resultat< |
| Addisjon |
num + 5 |
Summen av verdien til num og 5 |
| Subtaksjon |
3 - 1 |
Differansen mellom 3 og 1 |
| Multiplikasjon |
x * y |
Produktet av verdien til x og verdien til a |
| Divisjon |
5 / ikkeNull |
Kvotienten av 5 og verdien til ikkeNull |
| Modulus |
11 % 2 |
Resten av 11 dividert med 2 (1). |
I tillegg kan du benytte deg av paranteser for å gruppere utregninger. Dette gjør det lettere både å lese og vedlikeholde koden.
Arbeide med heltall
Heltalls variabler, som jeg gikk gjennom i <a href="?spraak=java&hkap=2&ukap=1">kapittel 2.1</a> kan kun lagre heltall (3, 5, 123, 10000, osv). Du kan utføre en hvilken som helst av operatorene listet overfor for å regne ut en heltallsverdi. Jeg tar for meg et program nedenfor som aksepterer et heltall som input fra kommandolinjen og som regner ut volumet og omkretsen av en sirkel med radius lik input. Mange av eksemplene i denne guiden vil benytte ett liknende oppsett.
public class HeltallSirkel
{
public static void main(String[] args)
{
if (args.length != 1)
{
System.out.println("Bruk: java HeltallSirken r\n" +
"Der r er et heltall");
}
else {
int r = 0;
try
{
r = Integer.parseInt(args[0]);
}
catch (NumberFormatException nfe)
{
System.out.println("r må være et heltall: " + nfe.getMessage());
System.exit(0); }
double omkrets = 2 * Math.PI * r;
double volum = Math.PI * Math.pow(r, 2);
System.out.println("Omkretsen til en sirkel med radius " + r + " er:\t" + omkrets);
System.out.println("Volumet til en sirkel med radius " + r + " er: \t" + volum);
}
}
}
Programmet overfor er noe mer komplisert enn tidligere program, men dette er nødvendig for å kunne lese inn fra kommando linjen. Jeg har lagt inn ekstra kontroller for at tallet som leses inn er et heltall. Kontroll strukturen på linje 17 til 28 heter en try-catch blokk. Jeg kommer nærmere til hvordan man benytter en try-catch blokk i kapittel 7 - Exceptions.
Ellers benytter jeg meg av variabelen PI og den statiske metoden pow() fra java.lang.Math. Alle java programmer henter inn java.lang automatisk, slik at jeg kan nå klassen direkte v.hj.a. Math.
Husk å gi et argument fra kommando linjen når du kjører programmet. Du angir et kommandi linje argument ved å legge til argumentene etter klasse navnet. Prøv forskjellige verdier for radius når du kjører programmet, som kompileres og kjøres slik:
jhb:~/kode/Kapittel 3 jhb$ javac HeltallSirkel.java
jhb:~/kode/Kapittel 3 jhb$ java HeltallSirkel 3
Omkretsen til en sirkel med radius 3 er: 18.84955592153876
Volumet til en sirkel med radius 3 er: 28.274333882308138
Arbeide med desimaltall
Å arbeide med desimaltall er likt som å arbeide med heltall. For å kunne lese inn et desimaltall i programmet overfor trenger du kun endre et få kode linjer. Variabelen r må endre type til double eller til float. Ettersom vi ikke har behov for å være utrolig eksakte (7 tall etter komma holder i bøtter og spann) holder det med en double variabel. Deretter må vi konvertere til en double istedet for til en int, som gjøres v.hj.a metoden Double.parseDouble(). Den endrede koden ser slik ut:
public class DesimaltallSirkel
{
public static void main(String[] args)
{
if (args.length != 1)
{
System.out.println("Bruk: java DesimaltallSirkel r\n" +
"Der r er et desimaltall");
}
else {
double r = 0;
try
{
r = Double.parseDouble(args[0]);
}
catch (NumberFormatException nfe)
{
System.out.println("r må være et desimaltall: " + nfe.getMessage());
System.exit(0); }
double omkrets = 2 * Math.PI * r;
double volum = Math.PI * Math.pow(r, 2);
System.out.println("Omkretsen til en sirkel med radius " + r + " er:\t" + omkrets);
System.out.println("Volumet til en sirkel med radius " + r + " er: \t" + volum);
}
}
}
jhb:/home/joachimb/inc_filer/java/kode/Kapittel 3 jhb$ javac DesimaltallSirkel.java
jhb:/home/joachimb/inc_filer/java/kode/Kapittel 3 jhb$ java DesimaltallSirkel 3.25
Omkretsen til en sirkel med radius 3.25 er: 20.420352248333657
Volumet til en sirkel med radius 3.25 er: 33.18307240354219
Legg merke til at du kan gi DesimaltallSirkel ett heltall dersom du ønsker det, ettersom Java konverterer heltall til desimaltall automatisk. Mer om det i neste Kapittel 2.5 - Blandet aritmetikk-