← Tilbake

If/else, switch og do

Nå tar du Java et steg videre med JOptionPane (pop‑up‑vinduer), if/else, switch og løkker.

Hva lærer vi her?

GUI

Dialogbokser

Vi bruker JOptionPane for å lage mer visuelle programmer.

Logikk

Switch-case

Lær en ryddigere måte å håndtere mange valgalternativer på.

Løkker

Do-While

En løkke som alltid kjører koden din minst én gang.

💡
Husk: showInputDialog returnerer alltid tekst. Du må bruke Integer.parseInt() for å regne med tallene.
Oppgave 01

Myndig eller ikke? (if/else)

Vi starter med et program som spør om alder i en dialog og bruker en boolean for å sjekke status.

Hint: Legg merke til hvordan vi konverterer String input til int alder før vi sammenligner.
import javax.swing.JOptionPane;

public class Oppgave01_Myndig {
  public static void main(String[] args) {

    String input = JOptionPane.showInputDialog("Hvor gammel er du?");
    int alder = Integer.parseInt(input);

    boolean myndig;
    if (alder >= 18) {
      myndig = true;
    } else {
      myndig = false;
    }

    JOptionPane.showMessageDialog(null, "Myndig: " + myndig);
  }
}
Oppgave 02

Karakter-maskinen (switch)

Brukeren skriver inn en tallkarakter (0–5). Programmet viser tekst ved hjelp av en switch.

Hint: default fungerer som en "else" – den fanger opp alt som ikke passer i de andre casene.
import javax.swing.JOptionPane;

public class Oppgave02_Karakter {
  public static void main(String[] args) {

    String input = JOptionPane.showInputDialog("Tallkarakter (0–5):");
    int tall = Integer.parseInt(input);

    String tekst;
    switch (tall) {
      case 5: tekst = "A – Meget god!"; break;
      case 4: tekst = "B – God!"; break;
      case 3: tekst = "C – Ok!"; break;
      case 2: tekst = "D – Nesten der!"; break;
      case 1: tekst = "E – Bestått"; break;
      case 0: tekst = "F – Ikke bestått"; break;
      default: tekst = "Ugyldig karakter";
    }

    JOptionPane.showMessageDialog(null, tekst);
  }
}
Oppgave 03

100 poeng med terning (do‑while)

Her bruker vi en løkke som kaster terning helt til summen er minst 100.

[Image of do-while loop flowchart]
Hint: Forskjellen på while og do-while er at sistnevnte alltid kjører koden inni klammene før den sjekker om den skal fortsette.
import java.util.Random;
import javax.swing.JOptionPane;

public class Oppgave03_Terning100 {
  public static void main(String[] args) {
    Random rnd = new Random();

    int sum = 0;
    int antall = 0;

    do {
      int kast = rnd.nextInt(6) + 1;
      sum += kast;
      antall++;
    } while (sum < 100);

    JOptionPane.showMessageDialog(
      null,
      "Antall kast: " + antall + "\nSum: " + sum
    );
  }
}