# Arraywerte vergleichen



## newbie2009 (16. Dez 2009)

hey leute ich brauche einen tipp , also ich habe folgende methode geschrieben :

```
void get(){
		 IO.println(klasse[0]);
		 for (int z = 0; z <klasse.length-1; z++){					// verschiebt array 0 um 1 nach vorne
			    klasse[z] = klasse[z+1];
		 
		 }klasse[klasse.length-1] = 0;
		 

		
		 
	 }
```
sprich der hat einen array[0] dort schreibt er den wert von array[1] und so weiter und ersetzt dann den letzten array_ durch 0 , naja wenn man diese methode in einer schleife dann durchläuft stehen irgendwann in den arrayfeldern überall 0 ;

jetzt soll ich eine methode implementieren, die mir sagt ob alle felder = 0 sind und dann true liefern wenn das so ist.

ich habe mir gedacht  es so zu machen :
	
	
	
	






		Java:In die Zwischenablage kopieren


	 boolean isEmpty(){
		
		
				if (klasse.equals(0))
									{
					
					IO.println("der array ist leer");
									}return true;
									
										
									
		
	}

 doch ist das irgendwie nicht richtig, weil er ja theoretisch jedes feld vergleichen müsste oder ? ???:L_


----------



## javimka (16. Dez 2009)

ja, du musst jedes Feld vergleich.

```
boolean isEmpty() {
  for (int i=0;i<klasse.length;i++) {
    if (klasse[i]!=0) return false;
  }
  return true;
}
```


----------



## newbie2009 (16. Dez 2009)

also ok doch so umständlich , dachte würde  einfacher gehen  
dankeschön, aber der array muss klasse.length -1 sein  

```
boolean isEmpty() {
  for (int i=0;i<klasse.length-1;i++) {
    if (klasse[i]!=0) return false;
  }
  return true;
}
```

ah doch noch eine frage müsste nich 
	
	
	
	





```
if (klasse[i]!=0){
```
also eine geschweifte klammer, aso musst wissen bin noch ziemlicher anfänger   und uns wurde beigebracht immer nach if anweisung eine geschweifte klammer zu machen .


----------



## SlaterB (16. Dez 2009)

geschweifte Klammer ist immer besser, richtig,
bei einem Befehl gehts auch ohne, aber wie schnell schreibt man einen zweiten dazu und wundert sich dann, dass nix mehr funktioniert,

und javimka wird jetzt gleich 200 Tage gesperrt für den bösen Vorschlag im Anfänger-Forum


----------



## newbie2009 (16. Dez 2009)

aso ich habs versucht mit klammer zu machen , aber wie gesagt slater dann funzt es irgendwie nich mehr, oder nich mehr so wie es funktionieren sollte. 
könntest du vll das mit einer geschweiften klammer machen ? damit ich das nachvollziehen könnte:rtfm::rtfm:


----------



## SlaterB (16. Dez 2009)

```
for (int i=0;i<klasse.length-1;i++) {
    if (klasse[i]!=0) {
      return false;
    }
  }
```


----------



## javimka (16. Dez 2009)

Nein, nicht sperren, sonst ist mir den ganzen Tag lang langweilig 
Ich mach dafür fleissig Klammern.

@newbie2009
Wieso du klasse.length-1 wilslt, leutet mir noch nicht ganz ein. So lässt du das letzte Element ja weg.


----------



## newbie2009 (16. Dez 2009)

@ javimka 

ne  array wenn array initialisiert wird, liegt der erste Wert ja bei myArray[0].

sonst hättest du einen Array.Bound.of.Exception 

@ slater 
	
	
	
	





```
boolean isEmpty(){
	 for (int i=0;i<klasse.length-1;i++) {
		    if (klasse[i]!=0) {
		      return false;
		    }
		  }
	}
```
 kommt error, dass angeblich kein wert vomm typ boolean geliefert wird ???:L


----------



## javimka (16. Dez 2009)

newbie2009 hat gesagt.:


> sonst hättest du einen Array.Bound.of.Exception


Nein, kriegst du nicht 
Das Abbruchkriterium bricht früh genug ab


----------



## SlaterB (16. Dez 2009)

> kommt error, dass angeblich kein wert vomm typ boolean geliefert wird

was haben denn die Klammern beim if damit zu tun, dass du die Zeile 
return true;
NACH der Schleife weglässt?


----------



## newbie2009 (16. Dez 2009)

@ slater stimmt glaube bin schon zu müde 

und @ javimka hast auch recht  habe das mit dem belegen vom array verwechselt 

so aber jetzt  habe ich es verstanden 

vielen dank auf euch ist echt verlass


----------

