C
Cryptonize
Gast
Hallo erst mal
Ich habe versucht eien Stapel (classe Stack) zu programieren.
Das Programm wird compaliert , aber mitten in der Programmausführung wird die ArrayIndexOutOfBoundsException ausgelößt . Ich kann mir nicht erklären warum.
Hier ist mein Code danke im Vorraus!
Ich habe versucht eien Stapel (classe Stack) zu programieren.
Das Programm wird compaliert , aber mitten in der Programmausführung wird die ArrayIndexOutOfBoundsException ausgelößt . Ich kann mir nicht erklären warum.
Hier ist mein Code danke im Vorraus!
Code:
//Stack Stapel
import java.io.*;
import java.lang.*;
class Stackfunk{
private int laenge;
private int put = 0;
private int stapel[]= new int[laenge];
void daten(int groesse){
laenge= groesse;
}
void push(int eingabe){
stapel[put]=eingabe;
put++;
return;
}
boolean pop(){
stapel[put]=0;
put--;
System.out.println("Noch"+ put+" Elemente auf dem Stapel");
if(put==0)
return false;
else return true;
}
void anzeigen(){
System.out.println("Der Stapel lautet:");
System.out.println();
for(int i=0;i<= stapel.length-1;i++)
{
System.out.println(i+" Pos:"+stapel[i] );
}
return;
}
void beenden(){
System.exit(0);
}
boolean check(){
if(stapel[laenge] != 0)
return false;
else return true;
}
}
class Stack{
public static void main (String args[])
throws java.io.IOException{
int groesse=0;
String zahleingabe="";
int eingabe=0;
char hilfseingabe;
Stackfunk ob = new Stackfunk();
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Geben sie ein, mit wie viel Speicherplätzen der Stapel ausgestattet werden soll:");
try{
zahleingabe= in.readLine();
}
catch(IOException e){
System.out.println("Fehler bei der Eingabe");
System.exit(1);
}
//Umwandlung
try{
groesse=Integer.parseInt(zahleingabe);
}
catch(NumberFormatException n){
System.out.println("Fehler überprüfen sie , ob sie auch eine Zahl eingegeben haben(ihre Eingabe: "+zahleingabe+" )");
System.exit(1);
}
one:
for(;;){ //Endlosschleife
System.out.println("Was wollen sie machen?(1) Stapel füllen (2) Pos löschen (3) Stapel ausgeben (4) beenden");
hilfseingabe= (char) System.in.read();
if(hilfseingabe=='1' && ob.check()){
try{
zahleingabe= in.readLine();
}
catch(IOException e){
System.out.println("Fehler bei der Eingabe");
System.exit(1);
}
//Umwandlung
try{
eingabe=Integer.parseInt(zahleingabe);
}
catch(NumberFormatException n){
System.out.println("Fehler überprüfen sie , ob sie auch eine Zahl eingegeben haben(ihre Eingabe: "+zahleingabe+" )");
System.exit(1);
}
ob.push(eingabe);
if(ob.check()){
System.out.println("Stapel ist voll");
continue one;
}
if(hilfseingabe=='2'){
if(ob.pop())
continue one;
else ob.pop();
}
if(hilfseingabe=='3'){
ob.anzeigen();
}
if(hilfseingabe=='4'){
ob.beenden();
}
}}} }