# Ausgabe von definiertem getBefehl soll an bestimmter Stelle erscheinen



## stylegangsta (14. Sep 2014)

Hallo zusammen,

folgendes habe ich zusammen gefriemelt. Eine Main, die eigentlich nur die Textausgabe übernimmt und die auszugebenden Werte von den Unterklassen bzw. Objekten holt.
Der 1 Gang wird eingelegt und die km/h werden bis zur vordefinierten Grenze hochgezählt. Dann wird in den zweiten Gang geschaltet. Bei 65 km/h soll dann die Meldung kommen, dass man geblitzt wurde und normal weiter hoch zählen. Es funktioniert auch alles soweit, außer dass die Blitzmeldung direkt an dem Punkt erscheint, dass in den 2. Gang geschaltet wurde, anstatt erst bei 65 km/h. Irgendjemand ne Idee? Hier die verschiedenen Codes:


```
public class Autofahrt {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.printf("1. Gang wurde eingelegt!\n");
		
		System.out.printf("%d km/h erreicht, es wird in den 2. Gang geschaltet!\n", Beschleunigung.getGang1Wechselauf2());
		
		Radarfalle R1 = new Radarfalle();
		R1.setRadarfalle(65);
		System.out.printf("Wir wurden mit %d km/h geblitzt\n", R1.getRadarfalle());
		
		System.out.printf("%d km/h erreicht, es wird in den 3. Gang geschaltet!\n", Beschleunigung.getGang2Wechselauf3());		
		
		System.out.printf("%d km/h erreicht, es wird in den 4. Gang geschaltet!\n", Beschleunigung.getGang3Wechselauf4());
		
		System.out.printf("%d km/h erreicht, es wird in den 5. Gang geschaltet!\n", Beschleunigung.getGang4Wechselauf5());
		
		System.out.printf("Die Endgeschwindigkeit von %d km/h wurde erreicht!", Gang5.get5Gang());
	}
}
```


```
public class Beschleunigung {

	public static int getGang1Wechselauf2(){
		return Gang1.get1Gang() ;
	}
	
	public static int getGang2Wechselauf3(){
		return Gang2.get2Gang() ;
	}
	
	public static int getGang3Wechselauf4(){
		return Gang3.get3Gang() ;
	}
	
	public static int getGang4Wechselauf5(){
		return Gang4.get4Gang() ;
	}
	
	public static int getGang5(){
		return Gang5.get5Gang() ;
	}
}
```


```
public class Gang1 {
		static int Km = 1;
		
		public static int get1Gang() {
			while (Km < 56){
				Km = Km++;
				System.out.printf("%d km/h\n",  Km++);
			}
			return Km;
		}
}
```


```
public class Gang2 {
		static int Km = Gang1.get1Gang() + 1;
		
		public static int get2Gang() {
			while (Km < 108){
				Km = Km++;
				System.out.printf("%d km/h\n",  Km++);
			}
			return Km;
	}
}
```


```
public class Radarfalle {
	
	public final static int Radarfalle = 65;
	
		public void setRadarfalle (int R){
	}
	public int getRadarfalle(){
		return Radarfalle;
	}
}
```

Die Ausgabe sieht dann so aus: 55 km/h
56 km/h erreicht, es wird in den 2. Gang geschaltet!
Wir wurden mit 65 km/h geblitzt
57 km/h
58 km/h
59 km/h
60 km/h
61 km/h
62 km/h
63 km/h
64 km/h
65 km/h
<----------------------- hier soll es eigentlich erscheinen, anstatt da oben
66 km/h
67 km/h

Danke im Voraus für eure Ideen und Hilfestellungen


----------



## stylegangsta (14. Sep 2014)

[GELÖST] Der Code in der Unterklasse Gang2 wars. Die Radarfalle gehörte dort hinein

```
public class Gang2 {
		static int Km = Gang1.get1Gang() + 1;
		
		public static int get2Gang() {
			while (Km < 105){
				Km = Km++;
				if (Gang2.Km == 65)
					System.out.printf("Wir wurden mit %d km/h geblitzt\n", Radarfalle.getRadarfalle());
					System.out.printf("%d km/h\n",  Km++);
			}
			return Km;
	}
}
```

So erscheint es jetzt:
62 km/h
63 km/h
64 km/h
Wir wurden mit 65 km/h geblitzt
65 km/h
66 km/h
67 km/h

Eigentlich wollte ich das fortlaufend, so dass nach der blitze es direkt mit 66 weitergeht. Aber so reicht es dem Dozenten wahrscheinlich auch


----------

