Code with indeterminate entries showing the pairs in ascending order and odd in descending order

0

I'm doing an exercise where the user places an undetermined number of numbers and they have to be presented by dividing the odd-numbered pairs, the pairs being incremented and the odd pairs decreasing.

My question is how to take advantage of the loop of my code so in order to present all of them. I could do this by using classes as ArrayList , but I would like to know if there is a way to continue in my code.

package exer5proposto2;
import javax.swing.JOptionPane;


public class Exer5Proposto2 {


    public static void main(String[] args) {
        int n1 = 0, maior = 0, menor = 100000, cont = 0, i;
        String aux = "", resp = "";

        while(!"n".equals(resp)){
            aux = JOptionPane.showInputDialog(null, "Informe um número ");
            n1 = Integer.parseInt(aux);
            cont = cont+1;

            if(n1 % 2 == 0){
            for(i = 0; i < cont; i++){ //esse for poderia estar fora do while, no entanto ele ia guardar apenas uma posição (sendo impossivel fazer comparação), 
                if(maior < n1){      //então para não ter que fazer um vetor coloquei o for dentro do while assim ele ja faz as comparaçoes e salva 
                    maior = n1;  //essa seria uma das importancias de um vetor, armazenar um valor de um loop para outro loop externo a ele
                }            
            }
            }else{
            for(i = 0; i < cont; i++){ //esse for poderia estar fora do while, no entanto ele ia guardar apenas uma posição (sendo impossivel fazer comparação), 
                if(menor > n1){      //então para não ter que fazer um vetor coloquei o for dentro do while assim ele ja faz as comparaçoes e salva 
                    menor = n1;  //essa seria uma das importancias de um vetor, armazenar um valor de um loop para outro loop externo a ele
                }            
            }
            }
           resp = JOptionPane.showInputDialog(null, "Informe 's' para continuar e 'n' para sair");

        }



    }

}
    
asked by anonymous 22.09.2017 / 20:16

1 answer

1

Your code does not store all read numbers. So there's no way he can display them later in any order.

That is, you will probably have to:

  • Use two% s of% s, one for the pairs and one for the odd ones. You can use this:

    (n % 2 == 0 ? pares : impares).add(n);
    
  • After reading all the numbers, sort the% s of% s using method ArrayList .
  • Use as parameters to ArrayList method:
    • sort(Comparator) - ascending order.
    • sort - descending order.
22.09.2017 / 21:36