# Berechnungsergebnis von switch/case in weiteren Code verwenden



## piccolo1123 (17. Dez 2014)

Liebes Java Forum,
ich verzweifle bei einer Aufgabe sitze schon seit 3 Stunden fest. Kann nicht schlafen gehen ohne diese Aufgabe gelöst zu haben . Ich bräuchte sehr dringend präzise genaue Hilfe, wäre super !

Ich bin noch ein ziemlicher Anfänger und arbeite gerade an einer komplexen Aufgabe welche eine Hausaufgabe war.

Und zwar muss man in dieser Aufgabe Einheiten umwandeln. Und zwar 14 Einheiten. Mann muss mit dem Programm von jeder zu jeden Einheit springen können. Es geht um Speicher und BITS. Die Rechnungen verstehe ich. Es gibt nur ein Problem.Dass mich nicht schlafen lässt.  Es gibt 14 Einheiten mann muss einmal angeben VON welcher Einheit ZUR welchen Einheit und die Zahl die umgewandelt werden soll. So weit so gut. Mein Problem: Ich weiß theoretisch wie das funktioniert, jedoch benutzt ich Switch Case und weiß nicht wie ich bei dem zweiten Switch mit den Ergebnissen des ersten weiter rechnen soll. Wie kann ich mit den Ergebnisen des ersten Switch Case mit dem zweiten Switch Case weiter arbeiten ? Hier mein Code 
	
	
	
	





```
package button;
import java.util.Scanner;

public class BIT {

	public BIT() {
		Scanner s = new Scanner(System.in);
		int v,n,a;
		double erg,erg1,erg2,erg3,erg4,erg5,erg6,erg7,erg8,erg9,erg10;
		
		
		System.out.println("Einheitenumwandlung");
		System.out.println("");
		System.out.println("1 - Bit   ");                   
		System.out.println("2 - Byte   ");
		System.out.print("3 - KB   ");        System.out.print("6 - KiB   ");             System.out.print("9 - KBit   ");     System.out.println("12 - KiBit   ");                                                            
		System.out.print("4 - MB   ");          System.out.print("7 - MiB   ");             System.out.print("10 - MBit   ");    System.out.println("13 - MiBit   ");                    
		System.out.print("5 - GB   ");           System.out.print("8 - GiB   ");            System.out.print("11 - GBit   ");     System.out.println("14 - GiBit   "); 
		       
		         
		
		System.out.println("Bitte einheiten angeben:");
		System.out.println("von:"); 
		v=s.nextInt();
		System.out.println("nach:"); 
		n=s.nextInt();
		System.out.println(""); 
		System.out.println("Anzahl:");
		a=s.nextInt();
		
		 
	
		erg1 = (a*1);
		erg2 = (a*8);
		erg3 = (a*8192);
		erg4 = (a*8388608);
		erg5 =  (a*858993459);
		
		
		
		erg6=(1+1);
		erg7=(v*0.125);
		erg8=(1+1);
		erg9=(1+1);
		erg10=(1+1);
		
		
		{	
		
		switch(v){
		case 1:{System.out.println("Ihre zahl in Bit ist"+erg1);break;}
		case 2:{System.out.println("Ihre Zahl in Bit ist"+erg2);break;}
		case 3:{System.out.println("Ihre zahl in Bit ist"+erg3);break;}
		case 4:{System.out.println("Ihre Zahl in Bit ist"+erg4);break;}
		case 5:{System.out.println("Ihre Zahl in Bit ist"+erg5);break;}
		
		
		
				
		}
		switch(n){
		case 2:{System.out.println("Ihre zahl in Bit ist"+0.125*v);break;}
		

		
		
		
		
		}
		}}
	public static void main(String[] args) {
		BIT B = new BIT();

	}

}
```







So weit läuft alles gut, jedoch brauch ich die erg^s des ersten Switches !

VIELEN VIELEN DANK IM VORRAUS


----------



## Flown (17. Dez 2014)

Poste doch mal die ganze Angabe


----------



## Gucky (18. Dez 2014)

Wenn ich dir einen Tipp zur Durchführung geben darf: rechne den Wert zuerst in eine allgemeine Einheit um und von da in die Zweite.
Also wenn du z.B. von Kilometern zu Millimeter willst, dann rechnest du zuerst in von Kilometern in Meter und von da in Millimeter.
Das führt dazu, dass du nur noch maximal 14*2 Umrechenarten, statt maximal (14*(14+1))/2 und es vereinfacht den code IMHO stark, so wie es auch Codedoppelungen vermeidet.


Und wenn ich dir noch einen Tipp geben darf: verwende sprechende Threadnamen, bei denen ich schon, wenn ich den Link anklicke, weiß, worum es geht.


----------



## VfL_Freak (18. Dez 2014)

Moin,



piccolo1123 hat gesagt.:


> So weit läuft alles gut, jedoch brauch ich die erg^s des ersten Switches !


deine beiden SWITCH-Strukturen liefern Dir keine Ergebnisse, sondern gibt in Abhängigkeit vom eingegeben'v' lediglich EINEN Wert auf der Konsole aus!

*hmm, ich denke, Du solltest Dir mal die Grundlagen anschauen!!*

Gruß Klaus


----------

