不使用 if/else 语句的布尔语句?

Boolean statement without using if/else statement?

需要打印一个布尔语句 return -'true' 如果输入数字在 1 到 100 范围内,但 'false' 如果它是 40 到 50 之间的偶数。

这是我目前的代码, 我被卡住了,因为如果我输入一个低于 40 的数字,例如 12 或高于 50,例如 60,它会打印 'false'。这是我唯一需要帮助修复的部分。在这里编程的初学者,非常感谢任何帮助。

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);

您的第二个“最大”条件只需要应用于落在 40 到 50 范围内的数字。否则,odd/even 无关紧要。考虑这个版本:

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

    System.out.println(valuetest);
}

在不同的函数中编写代码,将 return 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();
}

由于“false”列表中的值太少:

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

可读性很重要。

`