finde fehler nicht

anna93

Mitglied
Hallo 🙂
Aus einem Grund (den ich einfach nicht finde) funktioniert dieser Code nicht, da keine Pfeile angezeigt werden 🙁

Es sollten soviele Pfeile angezeigt werden wie die Zahl, die der Benutzer zuerst eingegeben hat.
Kann mit vlt jemanden helfen?
Vielen Dank im voraus!!
Java:
	int count;
		
		do{
			do {
			
				System.out.println("Wie viele Werte wollen Sie in ihre Balkengraphik einlesen?");
				count = In.readInt() ;
				
				if (!In.done()) { //input check
					In.close ();
					Out.println("Bitte geben sie eine ganze positive Zahl ein");
				}
			} while (!In.done());
		
			
			if (count>20){ //input check
				Out.println("Sie können nicht mehr als 20 Werte einlesen");
			}
		} while (count>20);
		
		int [] a= new int [count]; 
		
		for (int i = 0;i<a.length;i++)
		{ Out.print("Zahl " + (i+1)+": ");
		int number= In.readInt(); 
		
		if (number<-10||number>10)			//input check
		{ In.reset();  						
		Out.println("Bitte geben Sie einen Wert zwischen -10 und 10 ein!"); 
		i = i - 1; // to repeat the input 
		continue; }
		
		if (!In.done()) { //input check
			In.close ();
			In.reset ();
			Out.println("Bitte geben sie eine ganze positive Zahl ein"); 
			i = i-1; // to repeat the input
			continue;}
		
		}
		Out.println(" <- negativ | positiv -> ");
		for(int n=0; n< a.length; n++) 
		{ if (a[n]>0){ 
			for (int j = 0; j < 20; j++) 
			{ Out.print(" "); 
			} Out.print("|"); 
			
			for(int j=1; j<= a[n]; j++)
			{ Out.print("->"); 
			}
			
		} else if(a[n]<0){
			int v = 20+(a[n]*2);
				
			for( int j=0; j<v; j++)
			{ Out.print(" "); 
			} for(int j=1; j<=(a[n]*-1); j++)
				{ Out.print("<-"); 
				} Out.print("|"); }
		System.out.print("\n"); 
		} 
	}
	}
 
Zuletzt bearbeitet:
Es steht extra groß und dick über jedem Editor hier im Forum, wie man Code schön übersichtlich darstellen kann! [JAVA'] Code [/JAVA'] das ist nicht zu viel verlangt, glaube ich! 😉
(ohne die ')

Mach das bitte erst einmal!
 
Zuletzt bearbeitet:
Hallo 🙂

Ein Problem ist, dass du eingebene Zahlen brav in [c]number[/c] speicherst, artig auf Gültigkeit prüfst - aber dann nicht im Array speicherst 😉 Dadurch bleiben alle Einträge auf 0 und dafür gibt es in deiner Ausgabe keinen Fall, da du auf > 0 und < 0 prüfst.
 
Zuletzt bearbeitet:
Bin blutiger Anfänger deshalb die blöde Frage, dachte mit int [] a= new int [count]; speichere ich das Array? oder wie sollte ich es sonst machen?

LG
 
Mit int[] a = new int[count] "erstellst" du ein Array der größe "count"!
Einen Wert darin zu speichern geht wie folgt:
a = {1,2,3,...count}
oder
a[Index]=x;

wobei index die Stelle ist an der du den Wert x abspeicherst.
z.B.
a[0] = 20;
a[5] = 10;
nehmen wir an der Rest ist 0:
a = {20, 0, 0, 0, 0, 20, ...}

Schau dich doch mal in der Doku um, da steht das noch etwas präziser :toll:
 
Du hast den Wert bereits in der Variable [c]number[/c] gespeichert, die Anzahl der bereits gelesenen Zahlen ist in [c]i[/c] gespeichert 🙂 Du kannst also den Wert nach der Überprüfung im Array speichern, falls er gültig war:
Java:
a[i] = number;
 
Wie du kennst ihn nicht? 😱

Du hast ihn doch extra in "number" abgespeichert! :toll:

Huch da war ich wohl zu langsam :/
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben