cannot find symbol!

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo :)

leider stocke ich auf meinem programmieren-übungszettel schon bei einer aufgabe, bei der das programm noch gar keine richtige funktion hat ;)

Code:
public class NameSearch

{

public static void main(String [] args)
{
int iterationsLinear; int iterationsDC;// deklariere Variablen int iterationsLinear und int iterationsDC
String [] nameArray; //erzeugt eine Variable, die auf ein String-Array verweist
nameArray = new String[16];      // erzeugt ein Array der Länge 16
            
          nameArray[0] = "Chomsky"; // belege erstes Array-Element mit Wert
          nameArray[1] = "Dante"; // belege zweites Array-Element mit Wert
          nameArray[2] = "Floyd"; // etc.
          nameArray[3] = "Gershwin";
          nameArray[4] = "Hamming";
          nameArray[5] = "Karat";
          nameArray[6] = "Lamport";
          nameArray[7] = "Moore";
          nameArray[8] = "Needham";
          nameArray[9] = "Police";
          nameArray[10] = "Ramones";
          nameArray[11] = "Shannon";
          nameArray[12] = "Turing";
          nameArray[13] = "Ulbricht";
          nameArray[14] = "Whitesnake";
          nameArray[15] = "Zuse"; 

{
System.out.println ("Name in List:"); }// gibt den String "Name in List:" aus
 
for (String item : nameArray) // definiert Variable, die nacheinander auf die einzelnen Array-Einträge verweist
{
System.out.println (item);} // gibt die Inhalte des Arrays nacheinander aus

}

public static int searchNameLinear(String [] nameArray) //Methode SearchNameLinear deklarieren

{int iterationsLinear=0;   // benutze Variable iterationsLinear und setze Wert auf 0
return iterationsLinear; }  //gibt iterationsLinear zurück



public static int searchNameDivideConquer(String [] args) //Methode SearchNameDivideConquer deklarieren

{int iterationsDC=0;   //benutze Variable iterationsDC und setze Wert auf 0
return iterationsDC;  }//gibt iterations DC zurück



{System.out.println ("Iterations needed applying linear search algorithm:" +iterationsLinear);}



{System.out.println ("Iterations needed applying divide and conquer search algorithm:" +iterationsDC);}


}

und die fehlermeldung dazu:

NameSearch.java:51: cannot find symbol
symbol : variable iterationsLinear
location: class NameSearch
{System.out.println ("Iterations needed appllying linear search algorithm:" +iterationsLinear);}

symbol : variable iterationsDC
location: class NameSearch
{System.out.println ("Iterations needed appllying divide and conquer search algorithm:" +iterationsDC);}

habe schon alles versucht, die einzelnen methoden woanders hinplatziert, die klammern anders gesetzt, aber letztendlich varieren dann meine fehler nur zwischen 2 und 71 ;)

wäre super wenn mir jemand helfen könnte, ich weiß leider nicht mehr weiter ;)
 

hdi

Top Contributor
Du hast alles in die main-Methode geklatscht, mit inner methods usw. Das is nich so gut.
Du hast auch ein "}" am Ende vergessen, dass die Klasse zu macht.
Nimm die Methoden zur Berechnung aus der main und füge sie an einen eigenen Platz in der Klasse ein.

Ausserem gibts du in deinen Meldungen nur zwei mal 0 aus, weil du die Werte ja gar nicht befüllst. Also richtig:
Code:
class ... {

public static void main(String [] args)
{
int iterationsLinear; int iterationsDC;// deklariere Variablen int iterationsLinear und int iterationsDC
String [] nameArray; //erzeugt eine Variable, die auf ein String-Array verweist
nameArray = new String[16];      // erzeugt ein Array der Länge 16
           
          nameArray[0] = "Chomsky"; // belege erstes Array-Element mit Wert
          nameArray[1] = "Dante"; // belege zweites Array-Element mit Wert
          nameArray[2] = "Floyd"; // etc.
          nameArray[3] = "Gershwin";
          nameArray[4] = "Hamming";
          nameArray[5] = "Karat";
          nameArray[6] = "Lamport";
          nameArray[7] = "Moore";
          nameArray[8] = "Needham";
          nameArray[9] = "Police";
          nameArray[10] = "Ramones";
          nameArray[11] = "Shannon";
          nameArray[12] = "Turing";
          nameArray[13] = "Ulbricht";
          nameArray[14] = "Whitesnake";
          nameArray[15] = "Zuse";

// die zwei Berechnungsmethoden aufrufen und Rückgabewert in deine int-Variablen von oben speichern

{System.out.println ("Iterations needed applying linear search algorithm:" +iterationsLinear);}
{System.out.println ("Iterations needed applying divide and conquer search algorithm:" +iterationsDC);} 
}

// hier die zwei Methoden einzeln

}
 

@x.l

Bekanntes Mitglied
Die Zeilen 51 + 55 stehen ausserhalb irgendeiner Methode. Sie befinden sich "nur" im Klassenrumpf. Und dort sind die lokalen Variablen iterationsDC und iterationsLinear nicht sichtbar. Das heißt, diese Anweisungen müssen in die main() mit rein.

#edit: zu langsam
 

Templon

Bekanntes Mitglied
Warum brauchst die initialization blocks für deine Sysos? Macht irgendwie nicht viel Sinn hier. und deine:

Code:
// Methode
// SearchNameDivideConquer
// deklarieren

Kommentare machen auch nicht viel Sinn und machen alles nur unleserlich

Du hast "iterationsLinear" in deiner Main Funktion deklariert. Darum findet er sie nicht in deinen initialization blocks.
 
G

Guest

Gast
ok, danke, dann versuch ich das mal.

und äh templon, ich weiß leider weder was initialization blocks noch was sysos sind ;)
die kommentare sind pflicht, ich muss jede neu hinzugefügte zeile kommentieren, sonst gibts punktabzug...
 

metaltiffy

Mitglied
So läuft das erstmal..
aber die MEthoden tun noch nichts außer 0 zurückliefern..

Code:
public class Test{

public static void main(String [] args)
{
	int iterationsLinear; 
	int iterationsDC;// deklariere Variablen int iterationsLinear und int iterationsDC
	String [] nameArray; //erzeugt eine Variable, die auf ein String-Array verweist
	nameArray = new String[16];      // erzeugt ein Array der Länge 16
	           
	          nameArray[0] = "Chomsky"; // belege erstes Array-Element mit Wert
	          nameArray[1] = "Dante"; // belege zweites Array-Element mit Wert
	          nameArray[2] = "Floyd"; // etc.
	          nameArray[3] = "Gershwin";
	          nameArray[4] = "Hamming";
	          nameArray[5] = "Karat";
	          nameArray[6] = "Lamport";
	          nameArray[7] = "Moore";
	          nameArray[8] = "Needham";
	          nameArray[9] = "Police";
	          nameArray[10] = "Ramones";
	          nameArray[11] = "Shannon";
	          nameArray[12] = "Turing";
	          nameArray[13] = "Ulbricht";
	          nameArray[14] = "Whitesnake";
	          nameArray[15] = "Zuse";
	
	
	System.out.println("Name in List:"); // gibt den String "Name in List:" aus
	
	for (int i = 0; i < nameArray.length; i++){
		System.out.println(nameArray[i]);
	}
	
	iterationsLinear = searchNameLinear(nameArray);
	iterationsDC = searchNameDivideConquer(new String[]{"Zuse", "Moore"});
	//bisher tun die beiden Methoden nichts außer 0 zurückliefern und verarbeiten die Variablen, die sie übergeben kriegen noch nicht..
	
	System.out.println("Iterations needed applying linear search algorithm:" +iterationsLinear);
	System.out.println("Iterations needed applying divide and conquer search algorithm:" +iterationsDC);

//SystemOutPrintln brauch keine geschweiften Klammern darum..aber darf auch nicht in der Klasse ohne ne Methode drum ausgeführt werden
	
}//end main

	
	public static int searchNameLinear(String[] nameArray) //Methode SearchNameLinear deklarieren
	{
		int iterationsLinear=0;   // benutze Variable iterationsLinear und setze Wert auf 0
		return iterationsLinear; 
	}  //gibt iterationsLinear zurück
	
	
	
	public static int searchNameDivideConquer(String[] args){
		int iterationsDC=0;   //benutze Variable iterationsDC und setze Wert auf 0
		return iterationsDC;  
	}//gibt iterations DC zurück
	
	
	

}

Tip: schreib wenn man mehrere Klammern hat hinter die schließende was sie schließt und rück das Vernünftig ein.. dann sieht mand das besser..
 

Templon

Bekanntes Mitglied
Anonymous hat gesagt.:
und äh templon, ich weiß leider weder was initialization blocks noch was sysos sind ;).
Code:
{System.out.println ("Iterations needed applying linear search algorithm:" +iterationsLinear);}

Hier verwendest du ein ein initialisierungs block (http://www.go4expert.com/forums/showthread.php?t=1254)
Dieser wird sowieso erst aufgerufen sobald du die Klasse instanzierst (Was du glaube ich nirgends machst).

Mit Sysos meine ich einfach die System.out.println (Ausgaben auf der Konsole) =)

Anonymous hat gesagt.:
die kommentare sind pflicht, ich muss jede neu hinzugefügte zeile kommentieren, sonst gibts punktabzug..

Dann würde ich sie ÜBER die Funktionen/Variabeln/Loops schreiben, macht das ganze schon ein wenig leserlicher =)
 

hdi

Top Contributor
Stimmt sry, hatte erst gesehen es stünde alles in der main. Dank toller Formatierung :roll:

Initialization blocks sind diese Dinger: {}

Es macht keinen Sinn, einzelne Anweisungen extra in so Klammern zu schreiben, wofür denn?
Mit Sysos meint er deine System.out.println() Aufrufe.

@Templon:
Gibt es den Begriff inner method nicht, oder warst du jetzt nur verwirrt weil ich fälschlicherweise
annahm, es steht alles in der main? Ne Methodendeklaration in einer Methode nennt man doch
inner method?!
 
G

Guest

Gast
sorry, aber ich hatte ganze 2 vorlesungen zu java und bin ohne vorkenntnisse mit den aufgaben komplett überfordert...
das mit der besseren formatierung macht sinn, hat mich aber bis jetzt niemand drauf hingewiesen ;)
und diese blöden {} klammern hatten wir in einem beispiel um son sysos rum, deswegen dachte ich, das müsste man immer so machen ;)
 

Templon

Bekanntes Mitglied
Anonymous hat gesagt.:
und diese blöden {} klammern hatten wir in einem beispiel um son sysos rum, deswegen dachte ich, das müsste man immer so machen ;)

Nene musst du nicht =) System.out.println ist einfach ein Methoden aufruf. "out" ist ein statisches Member der System Klasse und hat die Methode println.
 
G

Guest

Gast
jetzt funktionierts, vielen dank!

die methoden sollen erstmal nur 0 zurückliefern, warum auch immer ;)
 

hdi

Top Contributor
@Templon

Wtf vielen Dank, ich dachte bisher sowas funktioniert! Ich hatte mal folgendes gemacht:

Code:
public void doStuff() {
	new JButton().addActionListener(new ActionListener() {
		@Override
		public void actionPerformed(ActionEvent arg0) {
			doInnerStuff();
		}

		private void doInnerStuff() {
			System.out.println("Methode in einer Methode");
		}
	});
}

Da dachte ich mir "es gibt inner methodes". Zu dem Zeitpunkt hatte ich noch nich ganz verstanden,
dass ich da ne anonyme Klasse erstelle, und die doInnerStuff() ist ja nur eine Methode der Klasse.
Sie steht aber rein optisch in der doStuff() Methode, war mir jetz gar nich so bewusst dass es innere
Methoden gar nich gibt...

Danke!
 
G

Guest

Gast
so, ich hab leider doch noch ne frage..

den beiden methoden sollen jeweils die parameter nameArray und args[0] übergeben werden.
irgendwie klappt das aber nicht so, wie ich das will hehe.

Code:
// weist Variablen die Rückgabewerte der beiden Methoden zu

   iterationsLinear = searchNameLinear(String [] nameArray, String args[0]);
   iterationsDC = searchNameDivideConquer(String [] nameArray, String args[0]);

// gibt String und den Wert der Rückgabevariablen aus
 
   System.out.println("Iterations needed applying linear search algorithm:" +iterationsLinear);
   System.out.println("Iterations needed applying divide and conquer search algorithm:" +iterationsDC);

//Ende main
   
}

//Methode SearchNameLinear deklarieren   

   public static int searchNameLinear(String [] nameArray, String args[0]){
   
// benutze Variable iterationsLinear und setze Wert auf 0
      int iterationsLinear=0;
 
//gibt iterationsLinear zurück      
return iterationsLinear;
   }  
   
   
   public static int searchNameDivideConquer(String [] nameArray, String args[0]){
      
// benutze Variable iterationsDC und setze Wert auf 0
      int iterationsDC=0;

//gibt iterations DC zurück   
      return iterationsDC; 
   }

:oops:
 
G

Gast

Gast
Bei der Übergabe schreibt man keinen Datentyp davor. Nur den Variablenname.
 

Templon

Bekanntes Mitglied
Code:
searchNameLinear(String [] nameArray, String args[0]);
String darfst du hier nicht mehr schreiben. (Bei dem Aufruf der Methode) einfache nameArray bzw. args[0] reichen. =)

also so:
Code:
searchNameLinear(nameArray, args[0]);

und bei dem Methodenkopf darfst du nicht:
Code:
String args[0]
schreiben. einfach String[] args.

Mit args[0] greifst du auf das erste Element in dem Array zu.

Ich empfehle dir, irgendwas über Arrays im Internet zu lesen (Vorhin hat jemand ein Paar links gepostet).

Uas nächste Mal bitte auch die Fehlermeldung posten =)
 
G

Guest

Gast
Templon hat gesagt.:
und bei dem Methodenkopf darfst du nicht:
Code:
String args[0]
schreiben. einfach String[] args.
Sollte er auch nicht, sondern nur String args... er will ja nich das gesamte Array, sondern nur einen String aus dem Array.
 
G

Guest

Gast
ich lese seit gefühlten 24 stunden nur sachen im internet nach, aber für mich ist das alles chinesisch und verwirrt mich nur noch mehr ;)

hab jetzt:

Code:
// weist Variablen die Rückgabewerte der beiden Methoden zu

   iterationsLinear = searchNameLinear(nameArray, args[0]);
   iterationsDC = searchNameDivideConquer(nameArray, args[0]);

// gibt String und den Wert der Rückgabevariablen aus
 
   System.out.println("Iterations needed applying linear search algorithm:" +iterationsLinear);
   System.out.println("Iterations needed applying divide and conquer search algorithm:" +iterationsDC);

//Ende main
   
}

//Methode SearchNameLinear deklarieren   

   public static int searchNameLinear(String [] nameArray, String [] args){
   
// benutze Variable iterationsLinear und setze Wert auf 0
      int iterationsLinear=0;
 
//gibt iterationsLinear zurück      
return iterationsLinear;
   }  
   
   
   public static int searchNameDivideConquer(String [] nameArray, String []args){
      
// benutze Variable iterationsDC und setze Wert auf 0
      int iterationsDC=0;

//gibt iterations DC zurück   
      return iterationsDC; 
   }

und hab noch folgende fehler:

NameSearch1.java:49: searchNameLinear(java.lang.String[],java.lang.String[]) in
NameSearch1 cannot be applied to (java.lang.String[],java.lang.String)
iterationsLinear = searchNameLinear(nameArray, args[0]);

NameSearch1.java:50: searchNameDivideConquer(java.lang.String[],java.lang.String
[]) in NameSearch1 cannot be applied to (java.lang.String[],java.lang.String)
iterationsDC = searchNameDivideConquer(nameArray, args[0]);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Cannot find Symbol Java Basics - Anfänger-Themen 5
A Cannot find symbol mit Konstruktoren Java Basics - Anfänger-Themen 27
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
L cannot find symbol variable Kon Java Basics - Anfänger-Themen 8
F Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 5
R return: cannot find symbol Java Basics - Anfänger-Themen 2
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
S Cannot find symbol (symbol ist eine Variable) Java Basics - Anfänger-Themen 13
N Cannot find symbol Java Basics - Anfänger-Themen 18
P Cannot find symbol, wieso? Java Basics - Anfänger-Themen 5
M Erste Schritte cannot find symbol - Probleme mit Klassen Java Basics - Anfänger-Themen 6
J Error: cannot find symbol - variable Java Basics - Anfänger-Themen 3
F Erste Schritte parseint: cannot find symbol Java Basics - Anfänger-Themen 6
M Vererbung - Cannot Find Symbol constructor... Java Basics - Anfänger-Themen 11
D error: cannot find symbol Java Basics - Anfänger-Themen 3
B Frage zu Beispielprogramm: "error: cannot find symbol" Java Basics - Anfänger-Themen 2
BlueMountain Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 2
L Error: Cannot find symbol Java Basics - Anfänger-Themen 1
P Cannot find Symbol Java Basics - Anfänger-Themen 3
L Cannot Find Symbol - Was soll denn das bedeuten?!? Java Basics - Anfänger-Themen 7
P StdIn.readDouble: cannot find symbol Java Basics - Anfänger-Themen 7
B Fehler "Cannot find symbol - variable number1" Java Basics - Anfänger-Themen 13
B Compiler-Fehler cannot find symbol Java Basics - Anfänger-Themen 6
K Cannot find symbol Java Basics - Anfänger-Themen 3
H cannot find symbol Java Basics - Anfänger-Themen 4
S cannot find symbol, symbol: constructor Java Basics - Anfänger-Themen 2
3 Compiler-Fehler Fehlerbehebung cannot find Symbol Java Basics - Anfänger-Themen 4
R Compiler-Fehler Cannot find symbol (Method printIn) Java Basics - Anfänger-Themen 3
B Polymorphie A obj = new B; "cannot find symbol app()" Java Basics - Anfänger-Themen 5
S wieso Fehlermeldung cannot find symbol hier Java Basics - Anfänger-Themen 10
T Cannot find Symbol(String) Java Basics - Anfänger-Themen 9
2 Compiler-Fehler cannot find symbol Java Basics - Anfänger-Themen 13
B Erste Schritte cannot find symbol - problem Java Basics - Anfänger-Themen 9
D Cannot find symbol variable Java Basics - Anfänger-Themen 9
A Compiler-Fehler Cannot find Symbol Java Basics - Anfänger-Themen 6
V Packages: Cannot find symbol Java Basics - Anfänger-Themen 12
J Cannot find Symbol Variable mit JPanels Java Basics - Anfänger-Themen 2
L Fehlermeldung: RealMirror.java cannot find symbol Java Basics - Anfänger-Themen 2
D Cannot Find Symbol Java Basics - Anfänger-Themen 6
M Compile Time Error - cannot find symbol (Objekt!) Java Basics - Anfänger-Themen 2
L Problem mit Vererbung (extends) cannot find symbol Java Basics - Anfänger-Themen 3
S Problem beim Kompilieren - cannot find symbol - constructor() Java Basics - Anfänger-Themen 12
N cannot find symbol URL Java Basics - Anfänger-Themen 2
S Problem mit Javaeditor: Cannot find Symbol Java Basics - Anfänger-Themen 13
P cannot find Symbol - WTF? Java Basics - Anfänger-Themen 4
StupidAttack cannot find symbol Java Basics - Anfänger-Themen 16
B Cannot find symbol-Fehler Java Basics - Anfänger-Themen 3
Luk10 Cannot find Symbol Daten Java Basics - Anfänger-Themen 10
E cannot find symbol??? Java Basics - Anfänger-Themen 8
B cannot find symbol Java Basics - Anfänger-Themen 11
N cannot find symbol Java Basics - Anfänger-Themen 11
T OOP cannot find symbol Java Basics - Anfänger-Themen 4
A cannot find symbol - symbol : method Java Basics - Anfänger-Themen 5
T cannot find symbol Java Basics - Anfänger-Themen 5
I Cannot find Symbol & NullPointerException Java Basics - Anfänger-Themen 8
A cannot find symbol. Java Basics - Anfänger-Themen 5
K Ständige Fehlermeldung "Cannot find symbol" Java Basics - Anfänger-Themen 2
L cannot find symbol-method Java Basics - Anfänger-Themen 3
P Error: Cannot find Symbol Java Basics - Anfänger-Themen 4
J JOptionDialog "cannot find symbol" Java Basics - Anfänger-Themen 3
P JLayer 1.0 - cannot find symbol Java Basics - Anfänger-Themen 4
M cannot find symbol. Java Basics - Anfänger-Themen 7
T ChangeListener cannot find Symbol? Java Basics - Anfänger-Themen 2
D "identifier expected" und "cannot find symbol Java Basics - Anfänger-Themen 4
B cannot find symbol method equalsIgnoreCase? Java Basics - Anfänger-Themen 23
S Fehlermeldung cannot find symbol Java Basics - Anfänger-Themen 8
G Cannot find symbol, Suchfunktion benutzt Java Basics - Anfänger-Themen 3
A cannot find symbol :-( Java Basics - Anfänger-Themen 2
D Cannot find JUnit.framework Java Basics - Anfänger-Themen 1
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
R Cannot find a free socket for the debugger Java Basics - Anfänger-Themen 6
W Cannot find symbole variable Java Basics - Anfänger-Themen 4
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
W Cannot resolve symbol 'HttpServlet' Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
jakobfritzz Array- cannot invoke "" because "" is null Java Basics - Anfänger-Themen 4
Flo :3 Variablen Type dismatch: cannot convert from string to int Java Basics - Anfänger-Themen 9
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
V ClientProtocolException cannot be resolved Java Basics - Anfänger-Themen 6
J The import org.bukkit cannot be resolved Java Basics - Anfänger-Themen 3
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
L constructor cannot be applied... Java Basics - Anfänger-Themen 22
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
M Iterator cannot refer to a non final... Java Basics - Anfänger-Themen 20
T Error: int cannot be dereferenced Java Basics - Anfänger-Themen 10
J JLabel cannot be resolved Java Basics - Anfänger-Themen 8
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
B OOP next cannot be resolved or is not a field Java Basics - Anfänger-Themen 6
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
D Java Eclipse cannot be cast to java.awt.event.ItemListener Java Basics - Anfänger-Themen 3
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
M Erste Schritte [Variable] cannot be resolved to a variable Java Basics - Anfänger-Themen 4
M The Selection cannot be launched... Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben