Как я могу запустить простой цикл вместо повторяющихся операторов if? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь написать кусок кода, который читает 5 входных данных и затем обрабатывает самый низкий входной сигнал, полученный через цикл for.В настоящее время я написал 4 оператора if, чтобы это произошло, но мне интересно, могу ли я написать простой цикл for для этого.Дело не в том, чтобы использовать массив для сохранения ввода.Это мой код:

    int smallestNumb = 0;
    int largestNumb = 0;

    Scanner numbIn = new Scanner(System.in);
    System.out.println("Enter 5 numbers");
    int number1 = numbIn.nextInt();
    int number2 = numbIn.nextInt();
    int number3 = numbIn.nextInt();
    int number4 = numbIn.nextInt();
    int number5 = numbIn.nextInt();

    smallestNumb = number1;

    if(smallestNumb > number2) {
        smallestNumb = number2;
    }
    if(smallestNumb >  number3) {
        smallestNumb = number3;
    }
    if(smallestNumb > number4) {
        smallestNumb = number4;
    }
    if(smallestNumb > number5){
        smallestNumb = number5;
    }

Ответы [ 4 ]

0 голосов
/ 07 февраля 2019

Вы можете определить наименьшее число на лету:

Scanner numbIn = new Scanner(System.in);

System.out.println("Enter 5 numbers");

int smallestNumb = 0;
for (int i = 0; i < 5; i++) {
    int num = numbIn.nextInt();
    smallestNumb = num < smallestNumb ? num : smallestNumb;
}
0 голосов
/ 07 февраля 2019
public static void main(String[] args) {
    int smallestNum = Integer.MAX_VALUE;

    Scanner numIn = new Scanner(System.in);
    System.out.println("Enter 5 numbers");

    int num = 0;

    for(int i = 0; i < 5; i++) {
        num = numIn.nextInt();
        if(num < smallestNum)
            smallestNum = num;
    }

    System.out.println(smallestNum);
}
0 голосов
/ 07 февраля 2019

Вы можете использовать метод с переменными args (я не оперирую пустым регистром):

public int getSmallest(int... numbers){
  int smallestNumb = numbers[0];
  if (numbers.length==1) 
    return smallestNumb;

  for (int i=1; i<numbers.length; i++){
    smallestNumb = Math.min(smallestNumb, numbers[i]);
  }
  return smallestNumb;
}

и использовать его:

int smallest = getSmallest(number1, number2, number3, number4, number5)

Или цепочку Math.min()такие как:

smallestNumb = number1;
smallestNumb = Math.min(smallestNumb, number2);
smallestNumb = Math.min(smallestNumb, number3);
smallestNumb = Math.min(smallestNumb, number4);
smallestNumb = Math.min(smallestNumb, number5);
0 голосов
/ 07 февраля 2019

Вы можете повторить, чтобы задать 5 раз вопрос, и для каждой проверки, если новый меньше

int smallestNumb = Integer.MAX_VALUE, choice;
Scanner numbIn = new Scanner(System.in);

for(i = 0 ; i < 5 ; i++){
    System.out.println("Enter a number");
    choice = numbIn.nextInt();
    if(smallestNumb > choice) {
        smallestNumb = choice;
    }
}

System.out.println(smallestNumb);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...