Необходимо напечатать логическое выражение, которое вернет - «истина», если введенное число находится в диапазоне от 1 до 100, и «ложь», если это четное число от 40 до 50.
Вот код, который у меня есть до сих пор, Я застрял, потому что он печатает «ложь», если я ввожу число меньше 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);
Включает ли «между 40 и 50» 40 и 50?
Что вы подразумеваете под «логическим выражением»?
Ваше второе «максимальное» условие должно применяться только к числам, попадающим в диапазон от 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();
}
спасибо! очень полезно увидеть эту версию. Я все еще не изучил большую часть этих вещей, так что это будет полезно для моих будущих исследований.
Добро пожаловать, можете ли вы проголосовать, если этот пост полезен для вас :)?
Так как в списке "false" так мало значений:
boolean valuetest = value >= 1 && value <= 100
&& !List.of(40, 42, 44, 46, 48, 50).contains(value);
Удобочитаемость имеет значение.
`
что это ! стоять за?
это означает «если значение не попадает в список значений, содержащих 40, 42, 44, 46, 48 и 50». '!' это оператор отрицания
valuetest = (value >= 40 && value <= 50) ? (value % 2 == 0) : (value > 0 && value < 101)