# java hausis mit arrays



## Javanoobi (13. Jan 2010)

hey hab ein kleiens prob muss ein programm schreiben..^^ 
als erstes soll cih eingeben wie viele zahlen ich ausgegeben haben möchte und dann soll er diese ausgeben
danach soll er alle zahlen die er ausgegeben hat zusammenrechnen und den durchschnitt errechnen kann mir da wer helfen ? komm net wieter bei der schleife ^^

```
public class zahlenausgabe {

  public static void main(String[] args) {
    System.out.println("Bitte geben sie Ihre Werte ein.");
    int wert = Tastatur.leseZahl();
    int werte = new werte[];



   for i (i=0; i<wert; i++);
   System.out.println(werte);
```
und der fehler der immer kommt lautet:

zahlenausgabe.java:14:28: array dimension missing
    int werte = new werte[];
                           ^
zahlenausgabe.java:18:7: '(' expected
   for i (i=0; i<wert; i++);
      ^
zahlenausgabe.java:18:14: ')' expected
   for i (i=0; i<wert; i++);
             ^
3 errors


----------



## SlaterB (13. Jan 2010)

hast du denn in irgendeinem Lehrbuch mal die Deklaration eines Array oder einer for-Schleife angeschaut?
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 3.10 Arrays


----------



## nrg (13. Jan 2010)

versteh noch net wo und mit was du das array füllst.

aber mal um die 3 fehler zu beseitigen:
Arrays müssen bei der instanziierung initialisiert werden:

```
int werte[] = new werte[arraygröße];
```

Syntax von For-Schleifen

```
for (variable x; bedingung; inkrementierung der variable)
```

also bei dir:

```
for (int i = 0; i<werte.length; i++)
```

loopt dir zb übers ganze array werte[]
gibt da noch eine andere Schreibweiße für die For-Schleife bei Arrays od Lists, aber die lassen wir jetzt mal weg.

grüße
nrg


----------



## javabooni (13. Jan 2010)

vielen dank


----------



## javabooni (13. Jan 2010)

mh ein prob hab ich da noch und zwar kann es sein das ich "i" irgendwie noch deklaieren muss ? also sry ich bekomm das gerade gar nicht gebacken xD

```
zahlenausgabe.java:18:9: cannot find symbol
symbol  : variable i
location: class zahlenausgabe
   for (i=0; i<werte; i++);
```


----------



## SlaterB (13. Jan 2010)

da verrät dir jemand direkt
> for (int i = 0; i<werte.length; i++)

und du schreibst stattdessen
>  for (i=0; i<werte; i++);
und wunderst dich über Fehler?

das sieht man auch nicht alle Tage..


----------



## javabooni (13. Jan 2010)

ja sry xD habs geändert aber der zeigt mir immernoch den selben fehler


----------



## nrg (13. Jan 2010)

dann zeig doch am besten mal deinen geänderten code... hab meine glaskugel heute daheim vergessen :'(


----------



## javabooni (13. Jan 2010)

```
public class zahlenausgabe {

  public static void main(String[] args) {
    System.out.println("Bitte geben sie Ihre Werte ein.");
    int wert = Tastatur.leseZahl();
    int werte[] = new int[5];



   for (i = 0; i<werte.length; i++);
   System.out.println(werte);
  }
 }
```

und die fehler sind 


zahlenausgabe.java:18:9: cannot find symbol
symbol  : variable i
location: class zahlenausgabe
   for (i = 0; i<werte.length; i++);
        ^
zahlenausgabe.java:18:16: cannot find symbol
symbol  : variable i
location: class zahlenausgabe
   for (i = 0; i<werte.length; i++);
               ^
zahlenausgabe.java:18:32: cannot find symbol
symbol  : variable i
location: class zahlenausgabe
   for (i = 0; i<werte.length; i++);
                               ^
3 errors


----------



## nrg (13. Jan 2010)

";" schliesst ein statement ab.

```
//Statements nicht mit Zeilen gleichsetzen!!!
System.out.println("Hallo"); //<--- ein Statement
int i = 0;System.out.println(i);  //<--- ZWEI Statements
```

for/if/while z.b. sind kontrollstrukturen und haben einen rumpf, der ohne klammerung genau ein statement lang ist!
bei dir wird aber genau nach dem schleifenkopf ein statement mit ";" abgeschlossen... das ist ein syntax-fehler

also entweder

```
for (i = 0; i<werte.length; i++){
statement1;
statement2;
}
```
oder

```
for (i = 0; i<werte.length; i++)
statement1; //<--- Schleifenrumpf
statement2; //<---- wird NICHT in der schleife ausgeführt, sondern nur 1x, wenn die schleife beendet ist.
```


----------



## Tobias (13. Jan 2010)

SlaterB hat gesagt.:
			
		

> da verrät dir jemand direkt
> > for (int i = 0; i<werte.length; i++)
> 
> und du schreibst stattdessen
> ...





			
				javabooni hat gesagt.:
			
		

> for (i = 0; i<werte.length; i++);



^^WTF?


----------



## javabooni (13. Jan 2010)

ohh ach klar 
sry das ihc so nerv xD
danke nochma


----------



## nrg (13. Jan 2010)

kein thema. jeder fängt mal klein an . meine ersten threads hier sahen nicht anders aus. habs nochmal editiert um das mit den statements nochmal anhand von einen bsp etwas genauer zu zeigen.
grüße


----------

