Berechnungsergebnis von switch/case in weiteren Code verwenden

piccolo1123

Mitglied
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
Java:
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
 

Gucky

Top Contributor
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.
 

Neue Themen


Oben