Hallo
Ich hab wieder einmal ein kleine Problem.
Angabe:
Schreiben Sie ein Programm das die Methode
public static boolean istEnthalten(int n, ListOfInt myList) //ist n in myList enthalten?
sowie eine main-Methode zum Testen anbietet. Die istEnthalten-Methode muss rekursiv definiert sein. Die main-Methode soll vom Benutzer eine int-Zahl erfragen, diese intern als Liste ihrer Dezimalziffern darstellen und dann die Benutzerfrage nach dem Vorkommen einer bestimmten Ziffer beantworten.
So, natürlich geht bei mir mal wieder nichts so wie es soll.
Beim Kompilieren bekomme ich immer die Fehlermeldungen:
Bsp24.java:30: cannot find symbol
symbol : variable head
location: class ListOfInt
if(a.head==z){
Bsp24.java:33: cannot find symbol
symbol : variable tail
location: class ListOfInt
if(a.head==z){
Bin für jede Hilfe äußerst dankbar.
Nachfolgend mein bisheriger Code:
Weiters die Klasse ListOfInt die ich dafür benutzen soll
Ich hab wieder einmal ein kleine Problem.
Angabe:
Schreiben Sie ein Programm das die Methode
public static boolean istEnthalten(int n, ListOfInt myList) //ist n in myList enthalten?
sowie eine main-Methode zum Testen anbietet. Die istEnthalten-Methode muss rekursiv definiert sein. Die main-Methode soll vom Benutzer eine int-Zahl erfragen, diese intern als Liste ihrer Dezimalziffern darstellen und dann die Benutzerfrage nach dem Vorkommen einer bestimmten Ziffer beantworten.
So, natürlich geht bei mir mal wieder nichts so wie es soll.
Beim Kompilieren bekomme ich immer die Fehlermeldungen:
Bsp24.java:30: cannot find symbol
symbol : variable head
location: class ListOfInt
if(a.head==z){
Bsp24.java:33: cannot find symbol
symbol : variable tail
location: class ListOfInt
if(a.head==z){
Bin für jede Hilfe äußerst dankbar.
Nachfolgend mein bisheriger Code:
Code:
public class Bsp24{
public static void main(String[] args) {
String s;
int z;
ListOfInt a=ListOfInt.emptyList();
System.out.println("Gib Zahl ein");
s = SavitchIn.readLine(); //Benutzereingabe einlesen
for(int i=0; i<s.length(); i++){
a=a.add(s.charAt(i));
}
System.out.println(a);
System.out.println("Gesuchte Zahl");
z=SavitchIn.readLineInt();
istEnthalten(z,a);
}
//---------------------------------------------------
public static boolean istEnthalten(int z, ListOfInt a){
boolean result;
if(a.head==z){
result=true;
}else {
a=a.tail;}
istEnthalten(z,a);
if (result==true)
return result;
else
return false;
}
}
Weiters die Klasse ListOfInt die ich dafür benutzen soll
Code:
public class ListOfInt{
//-----------------------------------------Instanzvariablen
private int elem;
private ListOfInt rest;
//-----------------------------------------Klassenvariablen
private static ListOfInt theEmptyList = new ListOfInt();
//-----------------------------------Konstruktoren (privat)
private ListOfInt(){}
private ListOfInt(int i, ListOfInt l){
elem = i;
rest = l;}
//----------------------------------Schnittstellenmethoden
public static ListOfInt emptyList(){
return theEmptyList;}
//liefert leere Liste
public ListOfInt add(int i){
return new ListOfInt(i,this);}
// fügt i als Element vorne hinzu
public ListOfInt tail(){
//requires notEmpty
return rest;}
//liefert Rest-Liste
public int head(){
//requires notEmpty
return elem;}
//liefert erstes Element
public boolean notEmpty(){
return (this != theEmptyList);
//true gdw. Liste nicht leer
}}