#java #eclipse #methods
#java #eclipse #методы
Вопрос:
Я пытаюсь создать boolean
метод, который называется hasBiggerTank
так, что если размер больше или равен 4, у него достаточно топлива, иначе топлива недостаточно.
Я пытаюсь вызвать результаты логического метода в основном методе, но в результате я получил, что car1 и car2 распечатывают слово true
, когда оно должно выводиться
Ожидаемый результат:
«потребление хорошего топлива» плюс car2 должно быть false.
Я новичок в Java, мне нужна помощь.
// method
public boolean hasBiggerTank(int size) {
if (size <= 4) {
return true;
} else {
return false;
}
}
public class Start {
public static void main(String[] args) {
boolean hasBiggerTank = true;
int size = 0;
if (size <= 4) {
System.out.println("Good fuel consumptions");
} else {
System.out.println("Not enough fuel");
}
Car car1 = new Car();
car1.hasBiggerTank(6);
System.out.println("Car 1 efficiency: " car1.hasBiggerTank(size));
Car car2 = new Car();
car2.hasBiggerTank(2);
System.out.println("Car 2 efficiency: " car2.hasBiggerTank(size));
}
}
Комментарии:
1.
if(size <= 4)
size
перед этой строкой не было присвоено никакого значения, отсюда и ошибка2. @IsmaelPadilla — переменная
size
является параметром в функции, которая проверяется…3. @AyushGarg — Приведенные выше комментарии относятся к более ранней версии вопроса, в которой переменная
size
не была инициализированаmain
. Посмотрите на историю вопросов.4. @Mazzie — Это своего рода путаница, которая возникает, если вы изменяете свой вопрос, чтобы заменить более ранний код / вопросы более новыми. Пожалуйста, не делайте этого …. в будущем.
5. О, хорошо @StephenC, спасибо, что прояснил это.
Ответ №1:
public static boolean hasBiggerTank(int size) { \method
if (size <= 4) {
return false;
}
return true;
}
public class Start {
public static void main(String[] args) {
int size = java.util.Scanner.nextInt();
boolean hasBiggerTank = hasBiggerTank(size);
if(hasBiggerTank) {
System.out.println("Good Big Fuel Tank");
}
else {
System.out.println("Not big enough fuel Tank");
}
}
}
Вот как вызвать логический метод возврата из основного метода.
Ответ №2:
Хорошо, поэтому я думаю, что реальная причина, по которой вы получаете неправильный ответ, заключается в том, что логика вашего hasBiggerTank
метода неверна.
Основываясь на имени метода и способе его использования, я думаю, что он должен возвращаться true
тогда и только тогда, когда размер бака автомобиля больше size
аргумента.
Но если вы посмотрите на код, это НЕ то, что вы реализовали. Вместо этого ваш метод игнорирует размер бака автомобиля и просто проверяет, действительно ли пользователь ввел число, меньшее или равное 4.
Решение: подумайте о hasBiggerTank
том, что действительно следует делать… и реализовать это.
Но во всем этом есть что-то странное. В реальном мире размер бензобака автомобиля и его топливная экономичность — это не одно и то же. Но, возможно, это просто артефакт нереалистичного набора требований для домашнего задания …
Ответ №3:
как вы сказали в вопросе:
что, если размер больше или равен 4, у него достаточно топлива, иначе недостаточно топлива.
если размер больше или равен 4, тогда метод hasBiggerTank
должен вернуться true
, и проблема связана с вашим условием внутри hasBiggerTank
метода, и вам нужно изменить его на это:
public static boolean hasBiggerTank(int size) {
if (size >= 4) {
return true;
} else {
return false;
}
}
следующая проблема заключается в вашем main()
методе, снова вы вводите условия в неправильном формате, который следует изменить на этот:
int size = 0;
if (size >= 4) {
System.out.println("Good fuel consumptions");
} else {
System.out.println("Not enough fuel");
}
здесь, в соответствии с вашим вопросом, мы проверяем, больше или равен ли размер 4 или нет, если это правда, тогда будут напечатаны хорошие расходы топлива.