Вы не используете возвращаемые значения getGuestCount
, getSlicesPerPerson
et c.
Эти методы возвращают значение , что в основном означает, что вы можете использовать их, как будто они являются ценностью. input.nextInt
также возвращает значение, поэтому вы можете поместить его справа от =
.
Внутри метода getGuestCount
кажется для изменения значения guests
передан, но это изменение не будет отражаться на стороне вызывающего, потому что Java является передачей по значению. Вы как бы выбрасываете значение, которое было передано.
Фактически, ваши методы будут работать только так, как они есть, если аргументы передаются по ссылке, так что методы могут изменять переменные прошло. Но это невозможно в Java. См. этот пост о разнице между передачей по значению и передачей по ссылке.
Правильный способ переписать ваши методы в Java - это вернуть значение (которое они уже делаете, но вы не используете возвращаемое значение) и удалите посторонний параметр.
public static int getGuestCount() {
int guests;
while(true) {
System.out.print("Enter number of guests: ");
guests = input.nextInt();
if (guests >= 1 && guests <= 100)
break;
else
System.out.println("The guest count must be at least 1, but does not exceed 100. Please enter again.");
}
return guests;
}
public static int getSlicesPerPerson() {
int slicesPerPerson;
while(true) {
System.out.print("Enter number of slices per person: ");
slicesPerPerson = input.nextInt();
if (slicesPerPerson >= 1 && slicesPerPerson <= 8)
break;
else
System.out.println("The pizza slice count must be at least 1, but does not exceed 8. Please try again.");
}
return slicesPerPerson;
}
public static double computeRoomCost(int guests) {
double roomCost;
if (guests <= 30)
roomCost = 100.00;
else
roomCost = 200.00;
return roomCost;
}
public static double computeSodaCost(int guests) {
double sodaCost = guests * 1.50;
return sodaCost;
}
Вот как вы «используете возвращаемые значения»: вместо передачи переменной Если вы хотите изменить метод, поместите его слева от =
в операторе присваивания:
guests = getGuestCount();
slicesPerPerson = getSlicesPerPerson();
roomCost = computeRoomCost(guests);
sodaCost = computeSodaCost(guests);