Unerklärliche Fehlermeldung || ';' expected

F

Flat Eric

Gast
Ich hab ein Problem beim Kompilieren des Quellcodes unten.. Ich bekomm immer die Fehlermeldung " ';' expected" in der rot markierten Zeile.Die rot markierte Zeile war in der Aufgabenstellung vorgegeben, deswegen weiß ich nicht warum die Fehlerhaft ist. Weiß jemand was das soll?



Java:
import inout.*;
public class Test
{
public static void main(String args[])
{

[COLOR="Red"] boolean istElement(int feld[], int gesucht,int links, int rechts)[/COLOR]
 {
  int haelfte = feld.length/2;
  boolean b = true;
  while(b=!false)
  {
  if(gesucht==feld[haelfte])
  {return true}
  else if( gesucht<feld[haelfte])
  {
      for(int i, i<=(feld.length)/2,i++)
      {
          if(gesucht==feld[i])
          {return true;}
          else {return false;}
        }
        else 
        { for(int i= feld[haelfte], i <=feld.length,i++)
            {
                if(gesucht == feld[i]
                { return true;}
                else{ return false;}
            }
        }
    }
  

 }
 

}
}
 
F

Flat Eric

Gast
Jetzt würd ich gerne meine Methode ausprobieren, aber beim aufruf der Methode bekomm ich den Fehler ".Class expected". Die Methode befindet sich doch in der selben Klasse?!
Edit: Ah und sry das ich den Beitrag nicht editiert hab :X

Java:
import inout.*;
public class Test
{

 boolean istElement(int feld[], int gesucht,int links, int rechts)
 {
  int haelfte = feld.length/2;
  boolean b = true;
  while(b=!false)
  {
  if(gesucht==feld[haelfte])
  {b =true;}
  else if( gesucht<feld[haelfte])
  {
      for(int i=0; i<=feld[haelfte];i++)
      {
          if(gesucht==feld[i])
          {b= true;}
          else {b= false;}
        }}
       else
        { for(int i= feld[haelfte]; i <=feld.length;i++)
            {
                if(gesucht == feld[i])
                { b = true;}
                else{ b= false;}
            }
        }
    }
 

if(b==true)
{System.out.println("hat geklappt");}
else 
{System.out.println("nicht geklappt");}
return b;
}

public static void main(String args[])
{
int feld[] = { 1,2,3,4,5,6,7,8};
int rechts,links;
int gesucht = 3;
istElement(feld[],gesucht,rechts,links);// [B]HIER IST DER FEHLER[/B]

}

}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
istElement() ist eine normale Methode einer Klasse und kann nur an entsprechenden Objekten aufgerufen werden,
nicht einfach so von überall aus,
Grundlagen/ Beispielprogramme angeschaut?
 

eRaaaa

Top Contributor
1.) Zeile 44 --> istElement(feld,gesucht,rechts,links); (die Klammern weg :D )
2.) das ist keine statische Methode, also brauchst du erst ein Objekt der Klasse... also entweder statisch machen oder new Test().istElement(...);
 
F

Flat Eric

Gast
Super, vielen Dank leute. Er kompiliert jetzt Fehlerfrei :) Anscheinend hab ich aber irgendwo Quatsch gemacht, denn ich bekomme keinerlei Ausgabe beim Aufruf des Programms.


Java:
//Neu dazugekommen
static int gesucht=0,links=0,rechts=0;
static int feld[]= { 1,2,3,4,5,6,7,8};
//Konstruktor
public Test(int feld[], int gesucht,int links, int rechts)
{
this.feld=feld;
this.gesucht=gesucht;
this.links=links;
this.rechts=rechts;
}
[....](alles gleich) bis[...]

public static void main(String args[])
{
int feld[] = { 1,2,3,4,5,6,7,8};
int rechts=0,links=0;
int gesucht = 3;
Test suche = new Test(feld,gesucht,rechts,links);
suche.istElement(feld,rechts,links,gesucht);

}
 
S

SlaterB

Gast
> while(b=!false)

bedeutet:
weise b dem Gegenteil von false zu (true) und werte daher als Schleifenbedingung while(true) aus -> Endlosschleife

dagegen
while(b!=false)

bedeutet:
wiederhole die Schleife, solange b true ist,

ob b in deinen vielen if/else-Fällen auch immer irgendwann zu false = Ende gewechselt wird, darf bezweifelt werden
 

Oben