# Array auf Null setzen



## IT-Muslim (12. Mai 2014)

Aufgabe: Schreiben Sie die Klasse BattleShip mit einer main-Methode. Legen Sie in dieser ein 2-
dimensionales int-Array der Größe 10x10 an. Setzen Sie anschließend alle Elemente dieses Arrays
auf den Wert 0. Verwenden Sie hierfür ein geeignetes Schleifenkonstrukt.

Lösungsansatz:

public class BattleShip {
	public static void main (String [] args) {
		int[][] Array = new int[10][10];
		Arrays.fill(Array, null);
		System.out.println(Array);
	}
}

Problem: "Arrays cannot be resolved"

Kann mir jemand weiterhelfen?


----------



## anti-held (12. Mai 2014)

Die Meldung, dass Arrays nicht resolved werden kann bedeutet, dass du die Klasse Arrays noch importieren musst:

[c]import java.util.Arrays;[/c]

1.: Java initialisiert alle int Werte innerhalb der Arrays eh mit 0.

2.: Wenn du es aber trotzdem machen musst, musst du in einer Schleife über dein 2d-array iterieren und für jedes 1d-array [c]Arrays.fill(<arrayvariablenname>, 0);[/c] aufrufen


----------



## IT-Muslim (12. Mai 2014)

```
import java.util.Arrays;

public class BattleShip {
	public static void main (String [] args) {
		int[][] Array = new int[10][10];
		String[] myArray = new String[]{"0"};
		for (String s : myArray) {
		    System.out.println(s);
		}
	}
}
```

Also als Ausgabe kommt 0 heraus, stimmt das nun?

EDIT: ich sehe gerade, dass im zweiten Aufgabenteil  gefordert wird 10 Zeilen mit 10 Nullen auszugeben. Ich versuche das jetzt mal.


----------



## trez (12. Mai 2014)

Keine Ahnung ob das für dich stimmt, aber ich wäre damit nicht zufrieden ...

Vorsicht - es folgt Sarkasmus von einem der eigentlich keine Ahnug von Java-Programmierung hat:

Mit einem ähnlichen Programmierstil kann ich dir auch beweisen, dass eine Division durch 0 funktioniert



Spoiler: Der Beweis





```
int res;
	try {
		res = 5 / 0;
	} catch (Exception e) {
		res = 42;
	}
	System.out.println(" 5 / 0 = " + res);
```


----------



## IT-Muslim (12. Mai 2014)

trez hat gesagt.:


> Keine Ahnung ob das für dich stimmt, aber ich wäre damit nicht zufrieden ...
> 
> Vorsicht - es folgt Sarkasmus von einem der eigentlich keine Ahnug von Java-Programmierung hat:
> 
> ...



War das jetzt eine Hilfe von dir? Ich verstehe das nicht.


----------



## JavaMeister (12. Mai 2014)

Ich könnte eine Lösung posten, aber ich warte noch auf eine Lösung von Dir


----------



## Gucky (12. Mai 2014)

@IT-Muslim
Anstatt deine Arrayeinträge alle auf 0 zu setzen, hast du ein neues Array vom Typ String (????) gemacht und dieses mit dem String "0" initialisiert. Für dich sah es womöglich logisch aus...für uns nicht  das ist es, was trez meinte.

PS: 0 != null


----------



## trez (14. Mai 2014)

IT-Muslim hat gesagt.:


> War das jetzt eine Hilfe von dir? Ich verstehe das nicht.



Das war keine Hilfe sondern ein Wink mit dem Zaunpfahl.

WAS willst du machen?
Erst willst du Arrays initialisieren und danach mit sysout(0) beweisen, dass da auch 0 drin steht.
Solltest du nicht eher den Inhalt des Arrays ausgeben? :bahnhof: 


Manchmal muss einfach etwas raus: Lern erst mal programmieren bevor du mit codieren beginnst.


----------



## trez (14. Mai 2014)

hth

```
package gaga;

public class HdI {

	public static void main(String[] args) {
		 int[][] array = new int[5][3];
		 for (int i=0; i<5; i++) {
			 for (int j=0; j<3; j++) {
				 array[i][j] = 42;
			 }
		 }
		 for (int[] ia:array) {
			 for (int i : ia ) {
				 System.out.print(i + " ");
				 i = 42;
			 }
			 System.out.println();
		 }
	}
}
```


----------



## trez (14. Mai 2014)

Ops kann es nicht mehr editieren - Zeile 15 ist natürlich überflüssig


----------

