Gå til innhold

Kan man lage en if-test inni en switch?


Anbefalte innlegg

Kanskje et dumt spørsmål, men jeg lurer nå på det :dontgetit:

Holder på med en oppgave der jeg skal beregne skatt ut i fra noen opplysninger jeg får fra en bruker.

Har nå rotet inn en if-test inni en switch for å prøve å få den til å regne ut det jeg vil vite. Men lurer på om jeg kanskje er helt på jordet nå...

Finner ikke ut av dette så tenkte kanskje det var greit om jeg fikk et hint om å begynne på nytt, eller fortsette med det rotet jeg holder på med.

Lenke til kommentar
Videoannonse
Annonse

Jeg er selv sparsom med switch, og bruker switch bare for konstanter (enums er som skapt for switch).

Jeg har selv brukt if inni switch, men da var antall linje kode mellom case og break (inklusiv if-else og {}) ikke mer enn 5-6. Blir det uoversiktlig, saa pakk koden din inn i en metode og kall denne

 

Show us the code! :)

Endret av Patton
Lenke til kommentar

Fikk det til :!:

Funka fint med en if test inni.

import javax.swing.JOptionPane;

public class Eks_sett0_oppg18 {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub

	String inputs = JOptionPane.showInputDialog("Skriv inn inntekt");
	int inntekt = Integer.parseInt(inputs);

	String inputd = JOptionPane
			.showInputDialog("Skriv inn skatteklasse 1 eller 2");
	int skatteklasse = Integer.parseInt(inputd);

	int skatt = 0;

	while (skatteklasse != 0) {
		switch (skatteklasse) {
		case 1:
			if (inntekt < 20000) {
				skatt = 0;
			} else if ((inntekt > 20000) && (inntekt < 100000)) {
				skatt = (inntekt - 20000) * 20 / 100;
			} else {
				skatt = 80000 * 20 / 100 + (inntekt - 100000) * 40 / 100;
			}

			break;
		case 2:
			if (inntekt < 50000) {
				skatt = 0;
			} else if ((inntekt > 50000) && (inntekt < 150000)) {
				skatt = (inntekt - 50000) * 15 / 100;
			} else {
				skatt = 100000 * 15 / 100 + (inntekt - 150000) * 40 / 100;
			}

			break;

		default:

			System.out.println("Du har tastet feil");
			break;

		}
		System.out.println(skatt);

		inputs = JOptionPane.showInputDialog("Skriv inn inntekt");
		inntekt = Integer.parseInt(inputs);

		inputd = JOptionPane
				.showInputDialog("Skriv inn skatteklasse 1 eller 2");
		skatteklasse = Integer.parseInt(inputd);

	}
}
}

 

Kan hende dere vet om en enklere måte å gjøre det på,men fikk det til å funke :!:

Endret av Marihona
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...