Java – Øvingsoppgaver
Dette oppgavearket er bygget i samme stil som repetisjonsoppgavene dere har brukt i Python: korte oppgaver og komplette fasiter.
Sentrale konsepter
Dialogbokser
Vi går fra print() til
JOptionPane for å lage vinduer.
Parsing
Vi lærer å konvertere tekst til tall med
Integer.parseInt().
Løkker og switch
Vi bruker for og while for å
gjenta operasjoner, og switch for å velge handling ut fra en verdi.
HashMap
Vi lagrer data som nøkkel-verdi par, akkurat som en Python dictionary.
public class navnet (f.eks. Oppgave01_Print.java).
01Print
Skriv ut "Hei, verden!" til terminalen.
System.out.println().02Regning
Bruk int a = 4 og b = 6. Print
sum,
diff og produkt.
03Input-dialog
Spør "Hva heter du?" og vis hilsen i
showMessageDialog.
import javax.swing.JOptionPane;
øverst.04If/Else
Sjekk om et tall fra brukeren er større enn 10.
Integer.parseInt() for å få et tall.05For-løkke
Print tallene 1 til 5 på hver sin linje.
for (int i = 1; i <= 5; i++).
06While-løkke
Lag teksten "0 1 2 3" og vis i én dialogboks.
07Navn + alder
Hent både tekst og tall. Vis resultatet samlet.
showInputDialog etter
hverandre.
08Mini-quiz
Lag en quiz på "2 + 2" med poengteller.
.equals("4") for å sjekke om
tekst-inputen stemmer.Switch og HashMap
1. Switch (Kalkulatorens "sentralbord")
Når vi har mange valg for samme variabel, er switch ryddigere enn
if-else. Tenk på variabelen i parentesen som den tingen vi sjekker innholdet
i:
String tegn = "+";
switch (tegn) {
case "+": // Hvis "tegn" er pluss...
resultat = n1 + n2;
break; // Ferdig med sjekken!
case "-":
resultat = n1 - n2;
break;
}
2. HashMap (Kobling mellom to variabler)
En HashMap parer to verdier sammen. Vi kaller dem Key (nøkkel) og Value
(verdi). Tenk på det som en variabel som inneholder mange andre variabler:
// Vi lager en "bok" som kobler en tekst til en annen tekst:
HashMap<String, String> bok = new HashMap<>();
// .put(nøkkel, verdi) lagrer paret:
bok.put("katt", "cat");
// For å hente ut, bruker vi bare nøkkelen:
String svar = bok.get("katt"); // Nå inneholder "svar" teksten "cat"
bok.containsKey("ord") for å sjekke om en
nøkkel finnes før du prøver å hente den.
09Kalkulator
Håndter tall og operasjon (+, -, *, /).
if-else, så utvider du
programmet med
switch
for å sjekke hvilken operasjon brukeren skrev.
10Mini-ordbok
Lag oversettelser som kan søkes opp.
ordbok.containsKey(nøkkel) for å
se om ordet finnes.
11Telefonbok
Avansert HashMap med meny for ny, hent, slett og liste.
while(true)-løkke så programmet ikke stopper.
Løsningsforslag:
public class Oppgave01_Print {
public static void main(String[] args) {
System.out.println("Hei, verden!");
}
}
public class Oppgave02_Variabler {
public static void main(String[] args) {
int a = 4;
int b = 6;
System.out.println(a + b);
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
}
}
import javax.swing.JOptionPane;
public class Oppgave03_Input {
public static void main(String[] args) {
String navn = JOptionPane.showInputDialog("Hva heter du?");
if (navn != null) {
JOptionPane.showMessageDialog(null, "Hei, " + navn + "!");
}
}
}
import javax.swing.JOptionPane;
public class Oppgave04_IfElse {
public static void main(String[] args) {
String txt = JOptionPane.showInputDialog("Skriv et tall:");
if (txt != null) {
int tall = Integer.parseInt(txt);
if (tall > 10) {
JOptionPane.showMessageDialog(null, "Større enn 10");
} else {
JOptionPane.showMessageDialog(null, "10 eller mindre");
}
}
}
}
public class Oppgave05_For {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
}
}
import javax.swing.JOptionPane;
public class Oppgave06_While {
public static void main(String[] args) {
int i = 0; String tekst = "";
while (i <= 3) {
tekst += i + " ";
i++;
}
JOptionPane.showMessageDialog(null, tekst.trim());
}
}
import javax.swing.JOptionPane;
public class Oppgave07_StrengTall {
public static void main(String[] args) {
String navn = JOptionPane.showInputDialog("Navn:");
String alderTxt = JOptionPane.showInputDialog("Alder:");
if (navn != null && alderTxt != null) {
int alder = Integer.parseInt(alderTxt);
JOptionPane.showMessageDialog(null, navn + " er " + alder + " år.");
}
}
}
import javax.swing.JOptionPane;
public class Oppgave08_Quiz {
public static void main(String[] args) {
int poeng = 0;
String svar = JOptionPane.showInputDialog("Hva er 2 + 2?");
if (svar != null && svar.equals("4")) {
poeng++;
JOptionPane.showMessageDialog(null, "Riktig! Poeng: " + poeng);
} else {
JOptionPane.showMessageDialog(null, "Feil!");
}
}
}
import javax.swing.JOptionPane;
public class Oppgave09_Kalkulator {
public static void main(String[] args) {
String t1 = JOptionPane.showInputDialog("Første tall:");
String op = JOptionPane.showInputDialog("Operasjon (+,-,*,/):");
String t2 = JOptionPane.showInputDialog("Andre tall:");
if (t1 == null || op == null || t2 == null) return;
double n1 = Double.parseDouble(t1);
double n2 = Double.parseDouble(t2);
double res = 0;
if (op.equals("+")) res = n1 + n2;
else if (op.equals("-")) res = n1 - n2;
else if (op.equals("*")) res = n1 * n2;
else if (op.equals("/")) res = n1 / n2;
JOptionPane.showMessageDialog(null, "Resultat: " + res);
}
}
import javax.swing.JOptionPane;
import java.util.HashMap;
public class Oppgave10_MiniOrdbok {
public static void main(String[] args) {
HashMap<String, String> ordbok = new HashMap<>();
ordbok.put("katt", "cat");
while (true) {
String norsk = JOptionPane.showInputDialog("Norsk ord (eller ESC):");
if (norsk == null || norsk.equalsIgnoreCase("ESC")) break;
if (ordbok.containsKey(norsk)) {
JOptionPane.showMessageDialog(null, norsk + " = " + ordbok.get(norsk));
} else {
String ny = JOptionPane.showInputDialog("Ukjent ord. Oversettelse?");
if (ny != null) ordbok.put(norsk, ny);
}
}
}
}
import javax.swing.JOptionPane;
import java.util.*;
public class Oppgave11_Telefonbok {
public static void main(String[] args) {
HashMap<String, String> bok = new HashMap<>();
while (true) {
String cmd = JOptionPane.showInputDialog("Meny: ny, liste, slett, ESC");
if (cmd == null || cmd.equalsIgnoreCase("ESC")) break;
if (cmd.equals("ny")) {
String n = JOptionPane.showInputDialog("Navn:");
String t = JOptionPane.showInputDialog("Nummer:");
bok.put(n, t);
} else if (cmd.equals("liste")) {
JOptionPane.showMessageDialog(null, bok.toString());
} else if (cmd.equals("slett")) {
String n = JOptionPane.showInputDialog("Hvem skal slettes?");
bok.remove(n);
}
}
}
}