Ich bin neu in Java und ich lerne es selbst. Ich habe ein Problem gefunden, als ich die Methode überladen versuchte. Dies ist der CodeZurück in der Methode überladen
public static void main(String[] args) {
calculateScore();
calculateScore(500);
calculateScore("Duy", 600);
calcFeetAndInchesToCentimetres(100, 3.5);
calcFeetAndInchesToCentimetres(100*12 + 3.5);
}
public static double calcFeetAndInchesToCentimetres(double feet, double inches) {
if (feet >= 0 && inches >= 0 && inches <= 12) {
double footToInches = feet * 12;
double centimetres = (inches + footToInches) * 2.54;
System.out.println("The value in centimetres is " + centimetres + " cm.");
return centimetres;
} else {
return -1;
}
}
public static double calcFeetAndInchesToCentimetres(double inches) {
if (inches >= 0){
double inchesToFeet = inches/12;
double inchesRemain = inches - (inchesToFeet * 12);
calcFeetAndInchesToCentimetres(inchesToFeet, inchesRemain);
return 0;
} else {
return -1;
}
Mein Problem ist, wenn ich die return 0
aus der zweiten Methode nehmen, sagt der Debugger „missing return-Anweisung“. Dann habe ich versucht, return calcFeetAndInchesToCentimetres(inches);
setzen, es funktioniert, aber das Programm läuft für viele tausend Mal.
Dann setze ich return 0
und alles ist in Ordnung. Aber ich verstehe nicht, warum ich die return calcFeetAndInchesToCentimetres(inches);
nicht setzen kann und warum brauche ich eine return-Anweisung, wenn die obige Methode (mit 2 Parametern) es bereits hatte. Und wenn ich den Wert von Zentimetern konvertieren lassen möchte, wenn ich die zweite Methode (nur mit dem Parameter "Zoll") ausführe, was muss ich tun?
Eine andere Sache, die ich, dass in diesem blockcode
double inchesToFeet = inches/12;
double inchesRemain = inches - (inchesToFeet * 12);
calcFeetAndInchesToCentimetres(inchesToFeet, inchesRemain);
die inchesRemain wird 0 realisiert haben? Aber die Methode funktioniert sehr gut. Wenn ich inchesToFeet = inches % 12
ändere, zeigt es einfach nichts. Warum?
Die Rückgabe ist der Wert in der Methode richtig? Ich meine, wenn ich nicht zurück gebe was dann passiert? Weil ich nur zurückgebe, wenn ich die in der Methode deklarierte Variable benutzen muss, nachdem ich sie –
genannt habe Wow, das ist ein ziemlich großes Missverständnis darüber, was die Rückkehr ist. Lassen Sie 'void' Methoden beiseite,' return' ist das Wichtigste in einer Methode, und es ist sicherlich nicht für den Zugriff auf Variablen innerhalb der Methode. Der eigentliche Zweck einer Funktion besteht darin, eine Liste (möglicherweise leer) von Parametern zu nehmen und abhängig davon einen Wert zurückzugeben. Ohne eine return-Anweisung können Sie nur "void" -Methoden schreiben, die ** stopfen und nicht ** computing ** -Stücke sind. Sie sollten wirklich über Funktionen/Methoden lesen, denn Sie können sich keine Missverständnisse über diese Begriffe leisten. – Dici
Können Sie das bitte genauer erklären? Und kannst du mir ein Buch für die Java-Programmierung vorschlagen? Ich bin vietnamesisch und das gesamte Web, das ich durchsucht habe, sagt nur, dass die 'Rückkehr' verwendet wird, wenn wir die Methode brauchen, um die Information zu behalten und sie zurückzugeben. Und ich verstehe nicht, warum "zurückgeben" die Methode erneut aufrufen wird (in meinem Code)? –