Логический оператор без использования оператора if/else?

Необходимо напечатать логическое выражение, которое вернет - «истина», если введенное число находится в диапазоне от 1 до 100, и «ложь», если это четное число от 40 до 50.

  • например, если вы введете 12,45,60 и т. д., вы должны получить истину.
  • если вы введете 42 или 44 или 48, вы должны получить ложь.

Вот код, который у меня есть до сих пор, Я застрял, потому что он печатает «ложь», если я ввожу число меньше 40, например 12 или больше 50, например 60. Это единственная часть, которую мне нужно исправить. Новичок в программировании здесь, поэтому буду признателен за любую помощь.

public static void main(String[] args) {

   int value;

    System.out.println("enter number");
    Scanner scan = new Scanner(System.in);
    value = scan.nextInt();

    scan.close();


    boolean valuetest, min, max;


    min = (value>0 && value <101);
    max = (value >=40 && value <= 50 && value%2 ==1);

   valuetest= (max && min);
    System.out.println( valuetest);
valuetest = (value >= 40 && value <= 50) ? (value % 2 == 0) : (value > 0 && value < 101)
ernest_k 21.03.2022 06:56

Включает ли «между 40 и 50» 40 и 50?

Bohemian 21.03.2022 07:03

Что вы подразумеваете под «логическим выражением»?

user207421 21.03.2022 07:15
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
52
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Ваше второе «максимальное» условие должно применяться только к числам, попадающим в диапазон от 40 до 50. В противном случае нечетное/четное не имеет значения. Рассмотрим эту версию:

if (value > 0 && value < 40 ||
    value >= 40 && value <= 50 && value % 2 == 1 ||
    value > 50 && value < 101) {

    System.out.println(valuetest);
}

Напишите код в другой функции, которая будет возвращать true/false, как показано ниже:

public bool ResultVal(int value)
{
   if (value >=1 && value <= 100)
   {
     if (value >=40 && value <=50)
     {
        if (value % 2 == 0)
        {
          return false;
        } 
     }
     return true; 
   }
   return false;
}

и вызовите функцию из вашего основного метода:

public static void main(String[] args) 
{

   int value;

    System.out.println("enter number");
    Scanner scan = new Scanner(System.in);
    value = scan.nextInt();
    System.out.println("Result: " + ResultVal(value));
    scan.close();
}

спасибо! очень полезно увидеть эту версию. Я все еще не изучил большую часть этих вещей, так что это будет полезно для моих будущих исследований.

hengeress34 21.03.2022 07:05

Добро пожаловать, можете ли вы проголосовать, если этот пост полезен для вас :)?

Rashedul.Rubel 21.03.2022 07:33

Так как в списке "false" так мало значений:

boolean valuetest = value >= 1 && value <= 100 
    && !List.of(40, 42, 44, 46, 48, 50).contains(value);

Удобочитаемость имеет значение.

`

что это ! стоять за?

hengeress34 21.03.2022 07:11

это означает «если значение не попадает в список значений, содержащих 40, 42, 44, 46, 48 и 50». '!' это оператор отрицания

Rashedul.Rubel 21.03.2022 07:35

Другие вопросы по теме