• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

java-problem

bog

Mitglied seit
02.08.2002
Beiträge
10.121
Reaktionen
0
Ort
auf dem mutterschiff
ich schreibe ein programm.
sieht so aus:
Code:
import info1.*;

public class aufgabe1anders
{
 public static void main(String[] args)
 {
  System.out.print("pick a number: ");
  int u=Console.in.readInt();
  int[] zahl={1,2,3,4,5};
  int summe=0;
  for (int i=0;i<=u;i++)
  {
   summe=summe+zahl[i];
  }
  System.out.print("ergebnis: ");
  System.out.print(zahl);
 }
}
die importierten klassen sind hier: http://bogy.mine.nu/java/info1/
das teil laesst sich fehlerfrei kompilieren, wenn ichs jedoch starte steigt es direkt mit folgender meldung aus:
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
        at aufgabe1anders.main(aufgabe1anders.java:13)
zeile 13 ist die summe=summe+zahl;-zeile. weder unser info-lehrer, noch ich koennen nachvollziehen, wieso das kommt, ich vermute mal es liegt irgendwo in der klasse, kann aber nichts ausmachen, ganz abgesehen davon dass ich mit java auch erst angefangen hab. jemand ahnung? :/
 
Mitglied seit
08.12.2001
Beiträge
2.053
Reaktionen
0
du hast ein statisches array und verlangst vom user eine eingabe die sich auf den index bezieht. dann solltest du allerdings mal ne bereichsüberprüfung machen, wenn der dann mal auf die idee kommt und ne 9 eingibt isser ausserhalb der grenzen des arrays -> die runtime schmeisst ne out of range exception
 

Crusher-ScT-

Guest
jo stimmt .. ab 5 kracht es.

dein array geht ja nur von zahl[0]-zahl[4]
 

bog

Mitglied seit
02.08.2002
Beiträge
10.121
Reaktionen
0
Ort
auf dem mutterschiff
ah gut, dann waere das mal erklaert
naechstes problem: wenn ich ne zahl <5 eingebe krieg ich "[I@8ed465" und aehnliches als 'zahl' raus. wos geht?
 
Mitglied seit
08.12.2001
Beiträge
2.053
Reaktionen
0
du schreibst System.out.print(zahl);

es müsste heissen System.out.print(summe);

bei ersterem gibst du die anfangsadresse des arrays im ram aus (vermute ihc mal, ich kann kein java), zweiteres die gewünschte summe :P
 

Crusher-ScT-

Guest
System.out.print(zahl);

es gibt keine Variable bei dir die zahl heisst ...

du hast ein array angelegt also musst du es auch immer als array behandeln.

also immer zahl[0]-zahl[4] als variable angeben ..

System.out.print(zahl[0]); würde z.b. gehen.
 
Oben