2009-10-28 4 views
-1

mutateur retourne une valeurmutateur retournant une valeur

Ajouter une nouvelle méthode emptyMachine() à la classe TicketMachine qui est conçu pour simuler la vidange de la machine d'argent Il devrait à la fois retourner la valeur totale et réinitialiser la valeur de total à zéro. Coller la méthode tout dans l'espace ci-dessous

public int emptyMachine() 
    { 
     System.out.println("# " + total); 
     total = 0; 

    } 

je reçois cette erreur:

TicketMachine.java:44: missing return statement 
    } 
    ^
1 error 
The output should have been: 
    emptyMachine() returns correct value 
    emptyMachine() empties machine 

This is what was actually produced: 
    Exception in thread "main" java.lang.NoClassDefFoundError: TicketMachine 
+1

Comme le dit le compilateur. Vous manquez la déclaration de retour. Votre méthode doit renvoyer un int – jitter

+2

La saisie aléatoire des instructions jusqu'à ce que le vérificateur soit satisfait est une manière très inefficace d'apprendre à coder, même si l'oracle appelé StackOverflow vous fournit les solutions. Si vous voulez apprendre à programmer, vous feriez bien mieux de tenter de comprendre la signification des variables, des méthodes et des déclarations de retour. – meriton

+0

Vous avez défini le type de retour sur "int" mais vous n'avez pas renvoyé de valeur. – Raptor

Répondre

0

Votre signature de la méthode déclare qu'il retourne un entier, mais vous ne retournez pas quoi que ce soit. Je dois supposer que la variable 'total' est définie à l'extérieur de la méthode parce que vous ne nous montrez pas ce code.

+0

public int emptyMachine() { System.out.println ("#" + total); total = 0; total de retour; } vous voulez dire ça? – Tical

+0

Mark: 0 sur 1 Commentaires: * Test 1 (0,0 sur 1) La compilation a réussi La sortie aurait dû être: emptyMachine() renvoie la valeur correcte emptyMachine() se vide la machine Voici ce qui a été réellement produit: # 300 # 0 emptyMachine() vide la machine – Tical

+0

@Tical: Je viens d'ajouter cela comme un type d'instruction, mais oui, l'affectation de l'OP était de retourner 'total'. –

1

Comme le compilateur dit, il vous manque une instruction de retour dans votre méthode - qui doit retourner une valeur int

Comment utiliser les Java return statement

2

Instructions: « » Il faut à la fois retourner la valeur total et réinitialiser la valeur du total à zéro. ""

C'est facile. Dans ce cas, les codes "et" ne peuvent être lus utilement que comme "et" ".

public int emptyMachine() 
{ 
    int prevTotal = total; 
    total = 0; 
    return prevTotal; 
} 

Win \ o /!

Questions connexes