0
votes

Comment puis-je ajouter une méthode qui renvoie un résultat?

J'ai travaillé sur ces programmes. Ils n'ont aucune erreur mais je dois leur faire renvoyer un résultat pour qu'ils fonctionnent correctement. Plus spécifiquement pour ajouter une méthode qui renvoie un résultat.

Les instructions étaient les suivantes: Ecrire un programme divisé en méthodes dont au moins une renvoie un résultat


3 commentaires

« Ecrire un programme divisé en méthodes dont au moins une renvoie un résultat » n'est guère une instruction. Êtes-vous sûr?


Voir le mot-clé void dans vos méthodes? C'est là que vous spécifiez que votre méthode renvoie un résultat. Vous remplacez void par le type primitif ou le type d'objet que vous souhaitez renvoyer. public static int CalculateAge() par exemple. À partir de là, vous ajouteriez une instruction return laquelle vous termineriez la méthode et retourneriez une valeur. return age; par exemple. Enfin, vous utiliseriez la valeur renvoyée. int age = CalculateAge(); System.out.println("Your body's age is " + age); dans votre méthode principale par exemple.


La suppression des deux parties de code a rendu votre question incohérente, car elle y faisait toujours référence. J'ai défait cela.


3 Réponses :


1
votes

Donc, comment Java fonctionnera, le compilateur ne lira que les commandes de la méthode "main". Donc, dans le cas de la calculatrice, Java verra que vous voulez exécuter la méthode de la calculatrice, qui a un type de retour de "void". Elle devient PUBLIC (ce qui signifie que les autres classes peuvent la voir et interagir avec elle) STATIC (ce qui signifie essentiellement que la méthode appartient à la classe elle-même, pas aux instances de la classe) VOID (c'est votre type de retour, c'est-à-dire une fois la méthode terminée, ce qui est remis dans main) donc si vous voulez qu'une méthode retourne quelque chose, vous devez changer le type de retour. Dans le cas de votre projet de calculatrice, quelque chose comme celui-ci le diviserait en 2 méthodes dont l'une renvoie quelque chose:

public class OnlineCalculator {

     double e = (int)d / 10.0; 
     return e;
}

public static void Calculator(){
    int a;
    int b;
    Scanner scanner = new Scanner(System.in);
    
    System.out.print("Amount of loan at start of year? ");
    a = scanner.nextInt();

    System.out.print("Amount paid off this year? ");
    b = scanner.nextInt();
    scanner.close();

    int c = loanDifference (a, b);


    double d;
    d = c * 1.07 * 10.0; 
    final double e = newAmmountOwed(d);
   

    
    System.out.println("The new amount owed is (in pounds): " + e);
 
} //END of Calculator

} // FIN de la méthode principale

// Inserting your loan at the start of the year and the amount paid off
// and calculates the amount yet to pay with interest
//

//this will return an int type
public static int loanDifference(int ammountOwed, int ammountPaid) {
    int c = ammountOwed - ammountPaid;
    return c;
}

// cela retournera un double type public static double newAmmountOwed (double d) {

public static void main(String[] args) {
    Calculator();

}

semble vouloir que vous mettiez plus de code, mais l'idée est que vous sachiez comment utiliser des méthodes qui fonctionnent ensemble pour créer quelque chose à la fin!

utilisez la même idée avec l'autre!


1 commentaires

Ce programme ne fonctionne pas et donne des erreurs. Comment puis-je le modifier pour qu'il fonctionne?



1
votes

Premier programme, vous pouvez par exemple diviser votre méthode Calculate () en 2 méthodes et déplacer votre variable int "a" et "b" dans la méthode main ()

1ère méthode:

getInput();
int result = calculateAndreturnResult(){
}

system.out.println(result);

2ème méthode:

int calculateAndreturnResult(int a, int b) {
...
}

Enfin, utilisez ces méthodes dans main () et affichez le résultat:

void getInput(){
...
}


0 commentaires

1
votes

Voici un exemple d'une façon possible d'envisager de diviser une classe en utilisant certaines méthodes avec des retours. Prenons votre premier cours pour cet exemple. Vous recevez fréquemment des commentaires de votre utilisateur.

import java.util.Scanner; // Needed to make Scanner available

public class OnlineCalculator {

  public static void main(String[] args) {
    calculator();
  } //END of main method

  // Inserting your loan at the start of the year and the amount paid off
  // and calculates the amount yet to pay with interest
  //
  public static void calculator(){
    int a;
    int b;
    Scanner scanner = new Scanner(System.in);
    
    a = askForInt(scanner, "Amount of loan at start of year? ");
    b = askForInt(scanner, "Amount paid off this year? ");

    scanner.close();

    int c;
    c= a - b;

    double d;
    final double e;
    d = c * 1.07 * 10.0; 
    e = (int)d / 10.0; 
    
    System.out.println("The new amount owed is (in pounds): " + e);
 
  } //END of Calculator

  public static int askForInt(Scanner scanner, String message) {
    System.out.print(message);
    return scanner.nextInt();
  }
}

Cela pourrait potentiellement être décomposé en une autre méthode de réutilisabilité condensée.

public static int askForInt(Scanner scanner, String message) {
  System.out.print(message);
  return scanner.nextInt();
}

De là, vous pouvez remplacer vos appels d'information par cette méthode. Exemple complet:

Scanner scanner = new Scanner(System.in);

System.out.print("Amount of loan at start of year? ");
a = scanner.nextInt();

System.out.print("Amount paid off this year? ");
b = scanner.nextInt();


0 commentaires