---
title: "hjälp med while"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/96851-hjälp-med-while"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "farsta_online"
published: "2004-02-08T19:27:59.000Z"
updated: "2004-02-09T09:08:46.000Z"
replies: 5
views: 216
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/96851-hjälp-med-while"
---

# hjälp med while

## #1 — farsta_online, 2004-02-08T19:27Z

jag vill att mitt program INNAN den gör beräkningen kollar att radien är störreän 0

```
import javax.swing.*;
import java.text.*;
public class Volym {

	public static void main(String[] args) {
		double volKonstant = (Math.PI * 4)/3;
		double areaKonstant = (Math.PI * 4);
		String indata;
		DecimalFormat df = new DecimalFormat("#.##");
indata = JOptionPane.showInputDialog(null, 
				"Ange radien", "radie", 
				JOptionPane.QUESTION_MESSAGE);
		int radie = Integer.parseInt(indata);
		while (radie <= 0){
			indata = JOptionPane.showInputDialog("Felaktigt värde! Ange ny radie!");
	
		}
		
	double area = areaKonstant * Math.pow(radie, 2);
	double volym = volKonstant * Math.pow(radie, 3);
	System.out.println("Sfärens volym är: " + df.format(volym) + 
		"\n\nSfärens area är: " + df.format(area));
		System.exit(0);
	}
}
```

 
När jag anger 0 så kommer fram rutan med "Felaktigt värde! Ange ny radie!". Men när jag sedan skriver in ett värde så kommer hela tiden upp denna ruta ändå...
Programmet verkar ha låst sig

Tacksam för er hjälp
/Peter

Permalänk: https://www.webforum.nu/p/96851

## #2 — juventus1, 2004-02-08T21:11Z

Ja, det beror på att radie aldrig ändras mer än en gång. Ändra din loop till:

```
while (radie <= 0){
   indata = JOptionPane.showInputDialog("Felaktigt värde! Ange ny radie!");
   radie = Integer.parseInt(indata);
}
```

Permalänk: https://www.webforum.nu/p/1271289

## #3 — farsta_online, 2004-02-09T07:40Z

> **juventus1 skrev:**
>
> Ja, det beror på att radie aldrig ändras mer än en gång.

  Och varför skall radien ändras?

Permalänk: https://www.webforum.nu/p/1271430

## #4 — Mc Fetto, 2004-02-09T07:49Z

Ja, om man nu kommit in i whilesatsen så kan de ju vara bra att ha en möjlighet att komma ur den. Så om man inte tilldelar radie nytt värde i while så kommer den snurra där!

Permalänk: https://www.webforum.nu/p/1271432

## #5 — farsta_online, 2004-02-09T09:05Z

Tack för svaret!

> **Mc Fetto skrev:**
>
> Ja, om man nu kommit in i whilesatsen så kan de ju vara bra att ha en möjlighet att komma ur den. Så om man inte tilldelar radie nytt värde i while så kommer den snurra där!

 Ja, tack det märkte jag själv - men varför??

/Peter

Permalänk: https://www.webforum.nu/p/1271461

## #6 — UlfT, 2004-02-09T09:08Z

> **farsta_online skrev:**
>
> Tack för svaret!
>
>
> > **Mc Fetto skrev:**
> >
> > Ja, om man nu kommit in i whilesatsen så kan de ju vara bra att ha en möjlighet att komma ur den. Så om man inte tilldelar radie nytt värde i while så kommer den snurra där!
>
>  Ja, tack det märkte jag själv - men varför??
> 
> /Peter

Därför att while-satser är tänkta att göra just så. Dvs, gör allt inom while-blocket, medan (while) villkoret stämmer.

Permalänk: https://www.webforum.nu/p/1271463

---

Tråden på webben: https://www.webforum.nu/amne/java/96851-hjälp-med-while
