Нахождение минимума 3 переменных с помощью оператора if - PullRequest
0 голосов
/ 02 ноября 2019

Я изучаю, как использовать BlueJ, и я изо всех сил пытаюсь написать код, чтобы он вывел минимальное число, введенное пользователем. Любая помощь будет оценена!

import java.util.Scanner;
public class FindMin
{
    public static void main(String[] args)
    {
        System.out.print("Program to compare three numbers");
        System.out.println("and output minimum value entered");

        Scanner input = new Scanner(System.in);

        System.out.print("Enter 1st number: ");
        int number1;
        number1 = input.nextInt();

        System.out.print("Enter 2nd number: ");
        int number2;
        number2 = input.nextInt();

        System.out.print("Enter 3rd number: ");
        int number3;
        number3 = input.nextInt();

        int minimum;
        if (number2 > number1 | number3 > number1){
            minimum = number1;
        }
        else if (number1 > number2 | number3 > number2){
            minimum = number2;
        }
        else if (number1 > number3 | number2 > number3){
            minimum = number3;
        }

        System.out.print("The minimum of the numbers entered is ");
        System.out.println(minimum); 
        System.out.println(); 
    }
}

Ответы [ 4 ]

1 голос
/ 02 ноября 2019

Вы также можете import java.util.* ведьма поставляется с java.lang.Math. Это позволяет вам использовать методы, которые взяты из Math, такие как Math.min.

import java.util.Scanner;
public class FindMin
{
    public static void main(String[] args)
    {
        System.out.print("Program to compare three numbers");
        System.out.println("and output minimum value entered");

        Scanner input = new Scanner(System.in);

        System.out.print("Enter 1st number: ");
        int number1;
        number1 = input.nextInt();

        System.out.print("Enter 2nd number: ");
        int number2;
        number2 = input.nextInt();

        System.out.print("Enter 3rd number: ");
        int number3;
        number3 = input.nextInt();

         int minimum = Math.min(Math.min(number1, number2), number3);

        System.out.print("The minimum of the numbers entered is ");
        System.out.println(minimum); 
        System.out.println(); 
    }
}
1 голос
/ 02 ноября 2019

| - оператор побитового ИЛИ. Вы хотите &&, логический оператор AND. «Если number2 больше number1 и number3 больше number1». Кроме того, вам не нужны if в последнем else, так как к тому времени вы исключили две из трех возможностей, и осталась только одна возможность. Итак:

if (number2 > number1 && number3 > number1){
// -------------------^^
    minimum = number1;
}
else if (number1 > number2 && number3 > number2){
// -------------------^^
    minimum = number2;
}
else /* No `if` here */ {
    minimum = number3;
}
0 голосов
/ 02 ноября 2019

Попробуйте описанный ниже метод и передайте три числа в качестве параметров.

    public static int getMinimumNumber(int no1, int no2, int no3) {
        return no1 < no2 ? (no1 < no3 ? no1 : (no2 < no3 ? no2 : no3)) : (no2 < no3 ? no2 : no3);
    }
0 голосов
/ 02 ноября 2019

Или вы можете сделать это

int minimum = 0;
    if(number1 < number2){
        minimum = number1;
    }else{
        minimum = number2;
    }
    if(number3<minimum){
        minimum = number3;
    }
...