Irgendwo fehlen Klammern ?

  • Themenstarter Themenstarter edgrar_u
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
E

edgrar_u

Gast
Hi,

es geht um ein paar sehr einfach e Fehler , aber ich suche trotzdem schon en ganzen Nachmittag mittlerweile und deswegen stell ich sie hier mal rein

die Fehlermeldungen die mir der compiler ausspuckt sind


missing return statement in Zeile 103 }
missing return statement } Zeile 117
unreachable statement in 123 /125/127/129/131/133/135

also irgendeine Klammer is noch offen , das der die Methode nicht erreicht - nur keine ahnung wo ???? :roll:
plz help

Code:
class Karte{
	byte kartennummer;
	char ziffer;
	char farbziffer;
}

class KartenStapel {
		Karte[] kartenset = new Karte[55];
		String hilfsString;
		


		KartenStapel(){
		
		int j = 0;
		for(int i= 0; i< kartenset.length;i++){
		
			// Farbe 
			if ( i < 13)
				kartenset[i].farbziffer = 'x';//"Kreuz"
			if ( i >13 && i < 28 )
				kartenset[i].farbziffer = 'p';
			if ( i >27 && i < 42)
				kartenset[i].farbziffer = 'h';
			if (i > 41 )
				kartenset[i].farbziffer = 'k';
			
			
			kartenset[i].kartennummer = (byte)(i +1);
			
			
			if (i<14){
				j = i+1;}
			if (i > 13) {
				j = i-14;}
			if (i > 27 && i < 42){
				j = i -27;}
			if ( i > 41 ) {
				j = i - 41;} 
			
			
			
			switch (j) {
		
			case 1: 
				kartenset[i].ziffer = 'a';
				break; 
			case 2: 
				kartenset[i].ziffer = 'k';
				break; 
				
			case 3:
				kartenset[i].ziffer = 'd';
				break; 
			case 4: 
				kartenset[i].ziffer = 'b';
				break; 
			case 5: 
				kartenset[i].ziffer = 'x';
				break;
			case 6:
				kartenset[i].ziffer = '9';
				break;
			case 7: 
				kartenset[i].ziffer = '8';
				break; 
			case 8: 
				kartenset[i].ziffer = '7';
				break; 
			case 9: 
				kartenset[i].ziffer = '6';
				break; 
			case 10:
				kartenset[i].ziffer = '5';
				break; 
			case 11: 
				kartenset[i].ziffer ='4';
				break; 
			case 12:
				kartenset[i].ziffer = '3';
				break; 
			case 13: 
				kartenset[i].ziffer = '2'; 
				break; 
			case 14: 
				kartenset[i].ziffer = '1'; 
				break; 
			}
			}
		}


			public String toString(){
			
			for (int i = 0; i < kartenset.length; i++){							
			String ausgabe =" ";		
			ausgabe = getFarbeString(kartenset[i].farbziffer);
			ausgabe = ausgabe + " "+ getZifferString(kartenset[i].ziffer);
			return ausgabe;
			
			}
			
			}
			
			


			String getFarbeString(char input){
				if(input == 'x'){
					return "Kreuz";}
				if (input == 'p'){ 
					return "Pik";}
				if (input == 'h'){
					return "Herz";}
				if (input == 'k'){
					return "Karo";}
			}
	

			String getZifferString(char input){
				switch (input){
					case 'a':return "Ass";
						 break;
					case 'k':return "Koenig";
						 break; 
					case 'd':return "Dame";
						 break; 
					case 'b':return "Bube";
						 break; 
					case 'x':return "10"; 
						 break; 
					 default:return hilfsString + input;
						 break; 
				}
			}


	public static void main(String[] args){
		KartenStapel pokerkarten = new KartenStapel();
		System.out.println(pokerkarten.toString());
	}
}
danke im voraus edgrar
 
Code:
   public String toString(){
        
        for (int i = 0; i < kartenset.length; i++){
            String ausgabe =" ";
            ausgabe = getFarbeString(kartenset[i].farbziffer);
            ausgabe = ausgabe + " "+ getZifferString(kartenset[i].ziffer);
            return ausgabe;
            
        }
        return "";//<--------------------hinzufügen
    }
    
    String getFarbeString(char input){
        if(input == 'x'){
            return "Kreuz";}
        if (input == 'p'){
            return "Pik";}
        if (input == 'h'){
            return "Herz";}
        if (input == 'k'){
            return "Karo";}
        return "";//<--------------------hinzufügen
    }

    String getZifferString(char input){
        switch (input){
            case 'a':return "Ass";
//            break;---------------------------entfernen
            case 'k':return "Koenig";
//            break;---------------------------entfernen
            case 'd':return "Dame";
//            break;---------------------------entfernen
            case 'b':return "Bube";
//            break;---------------------------entfernen
            case 'x':return "10";
//            break;---------------------------entfernen
            default:return hilfsString + input;
//            break;---------------------------entfernen
        }
    }
 
danke für die schnelle und kompentente Hilfe, ich konnte das ganze jetzt kompilieren , allerdings bekomme ich jetzt eine NullPointerException in Zeile 20 und 140

hier noch mal der Code mit Zeilen nummerierung
Code:
class Karte{
	byte kartennummer;
	char ziffer;
	char farbziffer;
}

class KartenStapel {
		Karte[] kartenset = new Karte[55];
		String hilfsString;
		


		KartenStapel(){
		
		int j = 0;
		for(int i= 0; i< kartenset.length;i++){
		
			// Farbe 
			if ( i < 13)
				kartenset[i].farbziffer = 'x';//"Kreuz"
			if ( i >13 && i < 28 )
				kartenset[i].farbziffer = 'p';
			if ( i >27 && i < 42)
				kartenset[i].farbziffer = 'h';
			if (i > 41 )
				kartenset[i].farbziffer = 'k';
			
			
			kartenset[i].kartennummer = (byte)(i +1);
			
			
			if (i<14){
				j = i+1;}
			if (i > 13) {
				j = i-14;}
			if (i > 27 && i < 42){
				j = i -27;}
			if ( i > 41 ) {
				j = i - 41;} 
			
			
			
			switch (j) {
		
			case 1: 
				kartenset[i].ziffer = 'a';
				break; 
			case 2: 
				kartenset[i].ziffer = 'k';
				break; 
				
			case 3:
				kartenset[i].ziffer = 'd';
				break; 
			case 4: 
				kartenset[i].ziffer = 'b';
				break; 
			case 5: 
				kartenset[i].ziffer = 'x';
				break;
			case 6:
				kartenset[i].ziffer = '9';
				break;
			case 7: 
				kartenset[i].ziffer = '8';
				break; 
			case 8: 
				kartenset[i].ziffer = '7';
				break; 
			case 9: 
				kartenset[i].ziffer = '6';
				break; 
			case 10:
				kartenset[i].ziffer = '5';
				break; 
			case 11: 
				kartenset[i].ziffer ='4';
				break; 
			case 12:
				kartenset[i].ziffer = '3';
				break; 
			case 13: 
				kartenset[i].ziffer = '2'; 
				break; 
			case 14: 
				kartenset[i].ziffer = '1'; 
				break; 
			}
			}
		}


			public String toString(){
			
			for (int i = 0; i < kartenset.length; i++){				

			
			String ausgabe =" ";		
			ausgabe = getFarbeString(kartenset[i].farbziffer);
			ausgabe = ausgabe + " "+ getZifferString(kartenset[i].ziffer);
			return ausgabe;
			
			}
			return " ";
			}
			
			


			String getFarbeString(char input){
				if(input == 'x'){
					return "Kreuz";}
				if (input == 'p'){ 
					return "Pik";}
				if (input == 'h'){
					return "Herz";}
				if (input == 'k'){
					return "Karo";}
				return " "; 
			}
	

			String getZifferString(char input){
				switch (input){
					case 'a':return "Ass";
						 
					case 'k':return "Koenig";
						  
					case 'd':return "Dame";
						  
					case 'b':return "Bube";
						  
					case 'x':return "10"; 
						  
					 default:return hilfsString + input;
						  
				}
			}


	public static void main(String[] args){
		KartenStapel pokerkarten = new KartenStapel();
		System.out.println(pokerkarten.toString());
	}
}
danke im voraus
 
tut mir leidt, aber du musst dich mit den Zeilennummern vertan haben, Zeile 20 kann keine werfen, da sie nur auf eine Variable zugreift die zwei Zeilen drueber deklariert wurde und in 140 steht nichtmals was drin.

Kann es sein, dass sich die Nummerierung nur auf eine Klasse beziehen soll? Schau bitte nochmal nach, und vergleich, und poste dann die richtigen Nummern.
 
tut mir leidt, aber du musst dich mit den Zeilennummern vertan haben, Zeile 20 kann keine werfen, da sie nur auf eine Variable zugreift die zwei Zeilen drueber deklariert wurde und in 140 steht nichtmals was drin.

Kann es sein, dass sich die Nummerierung nur auf eine Klasse beziehen soll? Schau bitte nochmal nach, und vergleich, und poste dann die richtigen Nummern.

also ich hab nochmal nachgeschaut :

wörtlich steht da :

exception in thread "main"....blabla nullpointerexception
at.KartenStapel.<init>(Kartenstapel.java:20)
at Kartenstapel.main(KartenStapel.java:140)


nur keine Ahnung welches Teil da nicht intitialisiert sein soll ???

Kann sich das nochmal jmd anschauen? Auf was sich die Zeilenangaben beziehen kann ich jetzt leider auch nicht mehr sagen als oben schon (mögl. hat sich das ganze verschoben durchs kopieren um eine oder zwei Zeilen?)

Danke im voraus
 
Du erstellst mit "Karte[] kartenset = new Karte[55];" einen neuen Array "kartenset". Leider ist der Array nicht gefüllt, da steht jetzt 55 mal "null". Bevor du also irgendwelche farbziffern setzt, musst du Instanzen von "Karte" anlegen:
Code:
for( int i = .... )
  kartenset[i] = new Karte();
 
so vielen Dank an alle für die hilfe , mein Übungsprogramm läuft endlich und die Sache hat sich erledigt
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben