[Java] Brauche menschliche Debugger

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

[Java] Brauche menschliche Debugger

Beitrag von Mok »

Servus!

Ich bin gerade dabei ein Java-Prog bezüglich Varialben zu schreiben, und wenn ich auf Build > Build File klicke, wird meine File vom Compiler debuggt (komisch, nich?) und dann hab ich 12 fehler in einer Zeile /:->
Liegt wohl an EINEM Fehler, der die anderen auch Auslöst... ich hab ihn nicht gefunden, könnt ihr mir helfen?

Code: Alles auswählen

/* * * * * * * * * * * * * * * * * * * *
 * @Name		Arrays_1_Grundlagen	   *
 * @Author		Wolfram Weingartner    *
 * @Description	Grundlagen der Arrays  *
 * * * * * * * * * * * * * * * * * * */
 
 // Vorwort:
 // Ein Array (Tabelle) ist eine Liste gleichartiger Elemente, die mithilfe von einem Index
 // angesprochen werden können.
 //  ____________________
 // | 2 | 18 | 5 |112| 4 |
 //  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 
 import java.util.Arrays;
 public class Arrays_1_Grundlagen {
 	public static oivd main (String[] args) {
 		int z;
 		
 		/* Deklaration */
 		int[] abc = new int[10];//Erstellt ein neues Array mit 10 Elementen (0-9)
 								//Länge = unbekannt, Typ = int
 								
 		byte[] def = new byte{14, 11, 22, 120};//Erstellt ein Array vom Typ byte mit
 											  //den Elementen 14, 11, 22 und 210
 											  
 		/* Zugriff auf Elemtente */
 		z = (int)(Math.random() * 4) + 1;
 		System.out.println("Array Nummer "+z+" beinhaltet den Wert "+def[z]);
 		abc[0] = 12;
 		abc[1] = 8;
 		
 		for (int i = 2; i < (abc.length - 2); i++){//Anm.: <Arrayname>.length gibt die Länge zurück
 			ar[i] = (int)(Math.random() * 12) + 1;
 			System.out.println("\nArray Nummer "+i+" beinhaletet den Wert "+ar[i]);
 		}
 		
 		/* Array sortieren */
 		//Arrays können mit dem Befehl Arrays.sort(<Arrayname>) sortiert werden
 		
 		for (int i = 0; i < abc.length; i++) {
 			System.out.println("\nArray 'abc' ungeordnet: "+ar[i]);
 		}
 		
 		Arrays.sort(abc)
 		for (int i = 0; i < abc.length; i++) {
 			System.out.println("\nArray 'abc' geordnet: "+ar[i]);
 		}
 		
 		/* Arraywerte gleichsetzen */
 		for (int i = 0; i < def.length; i++) {
 			System.out.println("\nArray 'def' Ursprung: "+def[i]);
 		}
 		
 		def[2] = abc[(int)(Math.random() * 9)+1];
 		def[5] = abc[4]
 		def[4] = abc[8]
 		
 		for (int i = 0; i < def.length; i++) {
 			System.out.println("\nArray 'def' Neu: "+def[i]);
 		}
 	}
 }
Fehlerlog:
http://images.roflcopter.net/image/1380.jpeg

MfG und thx im vorraus, Mok
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Da fehlen min. 3 Semikolons.
(Tipp: in der unteren hälfte)

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

public static oivd main (String[] args)
Wenn Du einen Editor mit Syntax Highlighting nutzt, dann müßte Dir hier eigentlich was aufgefallen sein...
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

es liegt NICHT (nur) an ovid > void, sondern an

Code: Alles auswählen

byte[] def = new byte{14, 11, 22, 120}
das ist flasch. Man schreibt stattdessen

Code: Alles auswählen

byte[] def = {14, 11, 22, 120}
Aber trotzdem danke ;)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
shadow
Beiträge: 189
Registriert: 23.03.2005 17:52
Wohnort: Lübeck

Beitrag von shadow »

Hallo Mok,

es gibt verschiedene Schreibweisen um ein Array zu initialisieren.

du könntest auch folgendermaßen schreiben (womit dein erster Ansatz richtig gewesen wäre):

Code: Alles auswählen

byte[] def = new byte[] {14, 11, 22, 120};
grüße
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Code: Alles auswählen

/* * * * * * * * * * * * * * * * * * * *
 * @Name      Arrays_1_Grundlagen      *
 * @Author      Wolfram Weingartner    *
 * @Description   Grundlagen der Arrays  *
 * * * * * * * * * * * * * * * * * * */
 
 // Vorwort:
 // Ein Array (Tabelle) ist eine Liste gleichartiger Elemente, die mithilfe von einem Index
 // angesprochen werden können.
 //  ____________________
 // | 2 | 18 | 5 |112| 4 |
 //  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 
 import java.util.Arrays;
 public class Arrays_1_Grundlagen {
    public static oivd main (String[] args) {
oivd => void

Code: Alles auswählen

       int z;
       
       /* Deklaration */
       int[] abc = new int[10];//Erstellt ein neues Array mit 10 Elementen (0-9)
                         //Länge = unbekannt, Typ = int
       byte[] def = new byte{14, 11, 22, 120};//Erstellt ein Array vom Typ byte mit
                                    //den Elementen 14, 11, 22 und 210
Arrayinitialisierung falsch, ... = new byte[] {14,...

Code: Alles auswählen

                                   
       /* Zugriff auf Elemtente */
       z = (int)(Math.random() * 4) + 1;
       System.out.println("Array Nummer "+z+" beinhaltet den Wert "+def[z]);
       abc[0] = 12;
       abc[1] = 8;
       
       for (int i = 2; i < (abc.length - 2); i++){//Anm.: <Arrayname>.length gibt die Länge zurück
          ar[i] = (int)(Math.random() * 12) + 1;
Array 'ar' gibt es gar nicht, wahrscheinlich Array 'abc' gemeint?

Code: Alles auswählen

          System.out.println("\nArray Nummer "+i+" beinhaletet den Wert "+ar[i]);
Array 'ar' gibt es gar nicht, wahrscheinlich Array 'abc' gemeint? Und: beinhaletet

Code: Alles auswählen

       }
       
       /* Array sortieren */
       //Arrays können mit dem Befehl Arrays.sort(<Arrayname>) sortiert werden
       
       for (int i = 0; i < abc.length; i++) {
          System.out.println("\nArray 'abc' ungeordnet: "+ar[i]);
Array 'ar' gibt es gar nicht, wahrscheinlich Array 'abc' gemeint?

Code: Alles auswählen

       }
       
       Arrays.sort(abc)
Semikolon!

Code: Alles auswählen

       for (int i = 0; i < abc.length; i++) {
          System.out.println("\nArray 'abc' geordnet: "+ar[i]);
Array 'ar' gibt es gar nicht, wahrscheinlich Array 'abc' gemeint?

Code: Alles auswählen

       }
       
       /* Arraywerte gleichsetzen */
       for (int i = 0; i < def.length; i++) {
          System.out.println("\nArray 'def' Ursprung: "+def[i]);
       }
       
       def[2] = abc[(int)(Math.random() * 9)+1];
Downcast bei Zuweisung von int-Wert an byte geht nur explizit, also: def[2] = (byte) abc[(int)...

Code: Alles auswählen

       def[5] = abc[4]
       def[4] = abc[8]
2x Semikolon und 2x expliziter Downcast.
Zudem 2x Laufzeitfehler: def[4] und def[5] gibt es gar nicht, da nur def[0]...def[3] definiert.

Code: Alles auswählen

       for (int i = 0; i < def.length; i++) {
          System.out.println("\nArray 'def' Neu: "+def[i]);
       }
    }
 }
Sieht fast aus wie eine Übungsaufgabe: Finden sie alle Fehler :wink:

Kleiner Tip am Rande: Die Elemente eines Arrays lassen dich auch schön mittels folgender Methode ausgeben:

Code: Alles auswählen

System.out.println(Arrays.toString(abc)); // liefert: [0, 0, 1, 1, 4, 7, 8, 9, 11, 12]
!UD2
Antworten