Определение метода Java
Мой код похож на:
import java.util.Scanner;
public class CalcPyramidVolume {
public static void pyramidVolume (double baseLength, double baseWidth, double pyramidHeight) {
double volume;
volume = baseLength * baseWidth * pyramidHeight * 1/3;
return;
}
public static void main (String [] args) {
System.out.println("Volume for 1.0, 1.0, 1.0 is: " + pyramidVolume(1.0, 1.0, 1.0));
return;
}
}
И это сказало, что печать не может быть сделана в пустом типе. Я просто не понимаю, почему...
3 ответа
Решение
Метод void не возвращает ничего, что вы могли бы добавить к этой строке в методе main. Вам нужно заставить метод возвращать double, а затем возвращать переменную volume:
public static double pyramidVolume (double baseLength, double baseWidth, double pyramidHeight) {
double volume;
volume = baseLength * baseWidth * pyramidHeight * 1/3;
return volume;
}
или короче:
public static double pyramidVolume (double baseLength, double baseWidth, double pyramidHeight) {
return baseLength * baseWidth * pyramidHeight * 1/3;
}
Также смотрите: http://en.wikibooks.org/wiki/Java_Programming/Keywords/void
Проблема в том, что вы используете функцию pyramidVolume
это в принципе ничего не возвращает. Это должно работать:
import java.util.Scanner;
public class CalcPyramidVolume {
public static double pyramidVolume (double baseLength, double baseWidth, double pyramidHeight) {
double volume;
volume = baseLength * baseWidth * pyramidHeight * 1/3;
return volume;
}
public static void main (String [] args) {
System.out.println("Volume for 1.0, 1.0, 1.0 is: " + pyramidVolume(1.0, 1.0, 1.0).toString());
return;
}
}
public class CalcPyramidVolume {
public static double pyramidVolume (double baseLength, double baseWidth, double pyramidHeight) {
double volume;
volume = baseLength * baseWidth * pyramidHeight * 1/3;
return volume;
}
public static void main (String [] args) {
System.out.println("Volume for 1.0, 1.0, 1.0 is: " + CalcPyramidVolume.pyramidVolume(1.0, 1.0, 1.0));
}
}