# Änderung eines Programms (Thema Methoden)



## Simon100 (15. Jan 2012)

Hi,

haben nächste Woche ine Aufgabe in Informatik und das Thema sind Methoden.

Habe ein Programm geschrieben das von meter (m) nach inch (in) umrechnet und anders rum.

Habe das mit switch und case gemacht, aber jetzt wollte ich das mal mit if und else machen aber das bekomme ich nicht hin.

Ich hoffe ihr könnt mir helfen ?

Zu dem hatte ich auch sehr große Probleme das Programm zu schreiben und brauchte auch sehr viel hilfe.


Zu dem war der Berreich (//Abfrage von was nach was ) schon vorgegeben.

Und was auch noch wichtig ist das YES_OPTION für m nach in steht und NO_OPTION für in nach m.

[JAVA=1]import javax.swing.*;

class Meter
{
	public static void main (String [] args)
	{
		//Deklarieren und initalisieren

		double wert, ergebniss;

		//Abfrage von wo nach wo
		int i = 0;
		String str [] = {"m nach in", "in nach m"};

		i = JOptionPane.showOptionDialog(null,
		"umrechnen von ... nach ...",
		"Umrechnen",
		JOptionPane.YES_NO_OPTION,
		JOptionPane.QUESTION_MESSAGE,
		null,
		str,
		JOptionPane.YES_OPTION);

		//Rechnung
		switch (i)
		{
			case JOptionPane.YES_OPTION: wert = Double.parseDouble(JOptionPane.showInputDialog ("Geben Sie den Umzurechnenden Wert in Meter ein: "));
				ausgabe(mzuin(wert), wert, 0); //m nach in
				break;
			case JOptionPane.NO_OPTION: wert = Double.parseDouble(JOptionPane.showInputDialog ("Geben Sie den Umzurechnenden Wert in Inch ein: "));
			ausgabe(inzum(wert), wert, 1);	//in nach n
				break;
			default: System.exit(0);
		}
		System.exit(0);

	}

	public static double mzuin (double wert) //m nach in
	{
		wert = wert * 39.37;	
		return wert;
	}

	public static double inzum (double wert) //in nach m
	{
		double back = wert * (1/39.37);
		return back ;
	}

	public static void ausgabe (double ergebniss, double wert, int a)
	{
		switch (a)
		{
			case 0: JOptionPane.showMessageDialog(null, wert + "m sind " + ergebniss + "in.");	//Ausgabe für m -> in
				break;
			case 1: JOptionPane.showMessageDialog(null, wert + "in sind " + ergebniss + "m.");	//Ausgabe für in -> m
				break;
		}
		System.exit(0);
	}
}
[/code]

Meine Idee für die erste Anwendung von switch und case in if und else:

[JAVA=27]if(i = JOptionPane.YES_OPTION) {
	Double.parseDouble(JOptionPane.showInputDialog ("Geben Sie den Umzurechnenden Wert in m ein: "));
				ausgabe(mzuin(wert), wert, 0); //m nach in

	}else{ 

	Double.parseDouble(JOptionPane.showInputDialog ("Geben Sie den Umzurechnenden Wert in in ein: "));
			ausgabe(inzum(wert), wert, 1);	//in nach n


		}
[/code]


lg Simon


----------



## Final_Striker (15. Jan 2012)

Mit einem 
	
	
	
	





```
=
```
 weißt man einer Variablen einen Wert zu. Vergleichen kann man mit 
	
	
	
	





```
==
```
 bei primitiven Datentypen oder 
	
	
	
	





```
equals
```
-Methode bei Objekten.


----------



## Simon100 (15. Jan 2012)

ah ja das mit dem = stimmt, habe ich ganz übsersehen.

Das habe ich auch geändert.

Aber nun habe ich folgenden fehler :

Meter.java:28: error: variable wert might not have been initialized
                                ausgabe(mzuin(wert), wert, 0); //m nach in
                                                     ^
Meter.java:33: error: variable wert might not have been initialized
                        ausgabe(inzum(wert), wert, 1);  //in nach n
                                             ^


Müsste ja heißen das ich die variable wert nicht initialisiert habe oder ??

aber das habe ich doch oben unter dem String gemacht.

Hatte einfach mal double wert; vor dem if geschrieben, da hat er aber gesagt das das ja bereit oben vorhanden ist.


----------



## Final_Striker (15. Jan 2012)

Simon100 hat gesagt.:


> aber das habe ich doch oben unter dem String gemacht.



Ich sehe nirgends, dass du der Variable werte einen Wert zuweist.


----------

