#java
Вопрос:
// Patrik Maco
// 18/10/21
// VERSION 1
// Write a program that allows the user to input the length, width and height of a room (cm) - volme of balloon (m^3) prints the volume of the room in m^3 and the amount of balloons needed to fill the room.
import java.util.Scanner;
class volume
{
public static void main (String [] a)
{
Run();
System.exit(0);
}
public static int Length()
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter Values as whole numbers- not as decimals. Do not include measurement. Good example : 5,7,9 Bad example: 3.2, 5cm");
System.out.println("Length of room (in cm) ? ");
length = scanner.nextInt();
return length;
}
public static int Width()
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter Values as whole numbers- not as decimals. Do not include measurement. Good example : 5,7,9 Bad example: 3.2, 5cm");
System.out.println("Width of room (in cm) ? ");
int width = scanner.nextInt();
return width;
}
public static int Height(length, width)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter Values as whole numbers- not as decimals. Do not include measurement. Good example : 5,7,9 Bad example: 3.2, 5cm");
System.out.println("Height of room (in cm) ? ");
int height = scanner.nextInt();
return height;
System.out.println("Enter the volume of the baloon in M cubed");
float volume_b;
volume_b = scanner.nextFloat();
float RoomVolume;
RoomVolume = ( height * length * width);
System.out.println("The volume of the room is : " RoomVolume);
float balloon3;
balloon3 = RoomVolume/1000000;
float BalloonAmount;
BalloonAmount = balloon3/volume_b;
int n;
n = (int)BalloonAmount;
System.out.println("The number of balloons needed is : " n);
}
public static void Run()
{
int length = Length();
int width = Width();
int height = Height();
}
}
Метод Run() возвращает ошибку
Метод Height(int, int ) неприменим для аргументов ().
Я очень новичок в кодировании, и я хотел бы получить объяснение, если возможно, как я могу решить эту проблему?
Высота включает в себя два параметра в своем собственном методе, однако, если я введу те же параметры в Run (), моя программа не запустится
Комментарии:
1. Вы передаете параметры
length
иwidth
Height
методу без указания их типов. Сначала вы должны сформулировать метод примерно такpublic static int Height(int length, int width)
, а затем назвать его, например, высотой(8, 6). Или, если вам не нужны параметры, удалите их.
Ответ №1:
С вашим методом существует множество проблем Height
.
- В Java все параметры должны указывать свои типы, поэтому они должны быть объявлены как
public static int Height(int length, int width)
- весь код после оператора безусловного возврата недоступен
return height;
// any code after this point is unreachable
- если метод принимает параметры, их необходимо указать явно:
public static void Run()
{
int length = Length();
int width = Width();
int height = Height(length, width); // you need to pass length and width!
}
Другие замечания:
- Нет необходимости явно вызывать
System.exit(0)
в концеmain
, программа автоматически завершается в этот момент. - В Java очень распространено соглашение об именовании, согласно которому поля и классы рассматриваются как существительные, а методы-как глаголы, и они называются соответственно. Кроме того, имена классов обычно начинаются с прописной буквы
SomeClassName
, в то время как имена методов обычно начинаются со строчной буквыdoSomething()
по соглашению.