# Methode: Überprüft ob Zahlen im Array gerade sind?



## Wellensittich (4. Mai 2011)

Hallo  ich bin neu im Java, und komme bei meiner Hausaufgabe nicht weiter, weil ich nicht weiß wie ich das machen soll...

die Aufgabe ist eine Methode entwickeln, die überprüft ob alle Zahlen im üergebenen Array (Reihe) gerade sind. Wenn das übergebene Array nicht existent ist, soll die Methode  false zurückgeben
In einem leeren Array sind alle Einträge gerade.

Ich will hier keine vollständige Lösung haben sondern nur eine Hilfe wie ich das machen könnte, weil ich nicht weiß wie


----------



## Gast2 (4. Mai 2011)

Über das array iterieren und %2 anwenden?


----------



## Wellensittich (4. Mai 2011)

and Modulo habe ich auch schon gedacht, ich weiß nur nicht wie ich das hinschreibe


```
public boolean allEven(int[] arr) {
    	if ( allEvent(int[] % 2 == 0){
    	      	}


        return true;
    }
```


----------



## Gast2 (4. Mai 2011)

```
public static boolean containsOnlyEvenNumbers(final int[] array){
		if(array == null) {
			return false;
		}
		if(array.length == 0){
			return true;
		}
		for(int i : array){
			if(i%2 != 0){
				return false;
			}
		}
		return true;
	}
```


----------



## r.w. (5. Mai 2011)

Perfekt!
In nur 37 Min. die Hausaufgabe gelöst, ohne selbst nachdenken zu müssen. 
Das nenne ich effektiv. ;o)


----------



## henpara (5. Mai 2011)

> Perfekt!
> In nur 37 Min. die Hausaufgabe gelöst, ohne selbst nachdenken zu müssen.
> Das nenne ich effektiv. ;o)


Und jetzt noch ohne Ironie:

GAU!
In nur 37 Min. die Hausaufgabe gelöst, ohne selbst nachdenken zu müssen, daher auch ohne selbst was dazugelernt zu haben.
Das nenne ich dumm.
Bestraft wirds dann je nach geistiger Kapazität spätestens bei der nächsten Prüfung.


----------



## Murray (5. Mai 2011)

Das ist in diesem Fall aber nicht so sehr dem TO anzulasten, denn der hat ja eingangs geschrieben, dass er eben keine vollständige Lösung möchte.


----------



## nrg (5. Mai 2011)

oder rekursiv


```
public static boolean allEven(int[] a, int i) {
		return a == null || i < 0 ? false : i < a.length ? a[i] % 2 == 0 ? allEven(a, i+1) : false : true; 
	}
```

wobei das vllt bisschen unschön zu lesen ist


----------



## ARadauer (5. Mai 2011)

Murray hat gesagt.:


> Das ist in diesem Fall aber nicht so sehr dem TO anzulasten, denn der hat ja eingangs geschrieben, dass er eben keine vollständige Lösung möchte.



Doch, wer fragt wie man über ein array iterieren hat keine lust sich irgend wie mit dem thema auseinander zu setzen... und will indirekt die komplett lösung... 

Aber ist ja egal, wer sowas nicht schafft studiert sicher nicht informatik, sondern macht das in der schule und da (finde ich) hällt sich die tragik in grenzen, wenn man sich mal durchschumelt, da man später das wahrscheinlich nie wieder braucht..


----------



## SlaterB (5. Mai 2011)

nrg hat gesagt.:


> oder rekursiv
> 
> 
> ```
> ...



nicht schöner, aber wenn man schon so eine Zeile hat dann doch gleich ohne true und false:

```
public static boolean allEven2(int[] a, int i)
    {
        return (a == null) || (i >= 0 && (i >= a.length || (a[i] % 2 == 0 && allEven(a, i + 1))));
    }
```


----------



## Wellensittich (5. Mai 2011)

fassy hat gesagt.:


> ```
> public static boolean containsOnlyEvenNumbers(final int[] array){
> if(array == null) {
> return false;
> ...



danke erstmal für die Lösung, was ich nicht nachvollziehen kann ist das letzte return true..

beim ersten versteh ich das ja: wenn array leer ist wird false returned
beim zweiten if, wenn das Array nicht existent ist, wird ebenfalls falls returnt
beim dritten, wenn die zahlen ungerade sind, wird auch ein false returned

das letzte return gibt ein true aus, was bestimmt dann ausgegeben wird, wenn die zahlen gerade sind, aber müsste da kein else oder so stehen?


----------



## Murray (5. Mai 2011)

Wellensittich hat gesagt.:


> das letzte return gibt ein true aus, was bestimmt dann ausgegeben wird, wenn die zahlen gerade sind, aber müsste da kein else oder so stehen?


Kann das Programm denn bis zur letzten Anweisung kommen, wenn das Array existiert, nicht leer ist und ungerade Zahlen enthält?


----------



## Wellensittich (5. Mai 2011)

Nein, das ist für mein Tech.Informatik Studium, habe java erst gerade im 2.Semester und blicke nicht so durch bei den Hausaufgaben momentan.



> Kann das Programm denn bis zur letzten Anweisung kommen, wenn das Array existiert, nicht leer ist und ungerade Zahlen enthält?



Naja, eigentlich nicht, denn wenn die davor aufgelisteten bedingungen gelten, werden die dazu gehörigen "returns" ausgegeben, hmm, ok, also heißt das wenn alle drei bedingungen nicht erfüllt sind, wird dann erst die letzte Anweisung ausgeführt?


----------



## ARadauer (5. Mai 2011)

Wellensittich hat gesagt.:


> Nein, das ist für mein Tech.Informatik Studium, habe java erst gerade im 2.Semester und blicke nicht so durch bei den Hausaufgaben momentan.


Mhn ich weiß jetzt nicht ob ich das sagen soll, aber ganz ehrlich: Das is schon sehr krass!

Es ist schon seltsam, das man im 2. Semester eines Informatik Studiums keine Schleife über ein array zusammen bringt. Aber ok... 

kleiner Tipp: Nicht aufgeben, aber auf jeden Fall nochmal die Zeit nehmen und ein paar Stunden die Grundlagen ansehen...


----------



## Wellensittich (5. Mai 2011)

Naja, habe erst seit 3 Wochen Java^^ davor hatten wir im ersten Semester eine funktionale Programmiersprache OPAL (wird in der TU-Berlin) verwendet 

Vielen Dank erstmal für die Hilfe


----------



## Murray (5. Mai 2011)

Wellensittich hat gesagt.:


> Naja, eigentlich nicht, denn wenn die davor aufgelisteten bedingungen gelten, werden die dazu gehörigen "returns" ausgegeben, hmm, ok, also heißt das wenn alle drei bedingungen nicht erfüllt sind, wird dann erst die letzte Anweisung ausgeführt?


Genau. Und deshalb ist da auch kein "else" notwendig.


----------



## SlaterB (5. Mai 2011)

ein else zum if in der Schleife wäre sogar schlecht, ruhig mal ausprobieren/ drüber nachdenken


----------

