Как вызвать результаты логического метода в основном методе ‘static void’

#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 или нет, если это правда, тогда будут напечатаны хорошие расходы топлива.