Comando Break

Olá Pessoal!

Fiz um código utilizando o laço for, gostaria de utilizar a função break na iteração de numero 2. Como está descrito no código abaixo:

//inicio do metodo construtor
public static void main(String args[]) {
int numero[] = new int[3];
int menor, maior, x = 1, cont = 0;
String op, num = null;

    for (int i = 0; i < 3; i++) {
        num = JOptionPane.showInputDialog("Digite um numero inteiro:");
        numero[i] = Integer.parseInt(num);
        cont++;
        if(cont == 2){
            break;
        }//AQUI USO O COMANDO BREAK PARA SUSPENDER O LAÇO FOR
    }

    for (int i = 0; i < 3; i++) {
        menor = i;
        x = numero[i];
        
        //System.out.println("x=numero[i]: " + x);
        for (int j = i + 1; j < 3; j++) {
            if (numero[j] < x) {
                menor = j;
                //System.out.println("menor = j: " + menor);
                x = numero[j];
                //System.out.println("x=numero[j]: " + x);
            }//fim do se
        }//fim do laco interno
        numero[menor] = numero[i];
        //System.out.println("numero[menor] = numero[i]: " + numero[menor]);
        numero[i] = x;
        //System.out.println("numero[i] = x: " + numero[i]);
    }//fim do laço for externo
    for (int i = 0; i < 3; i++) {
        if(numero[i] != 0){
            System.out.printf("%5d", numero[i]);
        }
    }
}//fim do metodo construtor

OBS.: NO 1º LAÇO FOR UTILIZEI UMA CONDIÇÃO PARA O COMANDO BREAK, MAS CASO NÃO COLOQUE OUTRA CONDIÇÃO NO ULTIMO LAÇO FOR, ONDE NÃO FOI DIGITADO NUMERO ALGUM, O SISTEMA COLOCA O NUMERO ZERO.
COMO CORRIGIR ISTO?

Olá,

Na sua descrição do problema não estar bem claro o que você esta precisando, mas analisando o código fiz algumas alterações.

1 - Retirei do primeiro laço o If e o break, pois não vi muito propósito, pois estava impedindo que o sistema pedisse o 3º numero.

2 - Percebi que quando o usuário não digitava numero algum o sistema lançava uma exceção, pois você tentava transformar um valor NULL em INT, ai não rolava, então coloquei um IF que checa se o valor recebido é Vazio (Empty) e caso seja a variável recebe um zero.

3 - Por fim retirei um If no ultimo for que impedia a escrita do numero se caso fosse 0.

Ao meu ver esta tudo funcionando normal;

int numero[] = new int[3];
int menor, maior, x = 1, cont = 0;
String op, num = null;

for (int i = 0; i < 3; i++) {
    num = JOptionPane.showInputDialog("Digite um numero inteiro:");
    if(num.isEmpty()){
        num = "0";
    }
    numero[i] = Integer.parseInt(num);
    cont++;
   
}

for (int i = 0; i < 3; i++) {
    menor = i;
    x = numero[i];
    
    //System.out.println("x=numero[i]: " + x);
    for (int j = i + 1; j < 3; j++) {
        if (numero[j] < x) {
            menor = j;
            //System.out.println("menor = j: " + menor);
            x = numero[j];
            //System.out.println("x=numero[j]: " + x);
        }//fim do se
    }//fim do laco interno
    numero[menor] = numero[i];
    //System.out.println("numero[menor] = numero[i]: " + numero[menor]);
    numero[i] = x;
    //System.out.println("numero[i] = x: " + numero[i]);
}//fim do laço for externo
for (int i = 0; i < 3; i++) {
    
        System.out.printf("%5d", numero[i]);
   
}

Olá andrebmarinho!

Me desculpe por não ter passado na escrita a minha dificuldade na solução do código.

1 - Fiz o break justamente para o laço não ir até o índice 3. Desejo Mostrar a Ordenação antes do termino do laço for, que vai até 3, ou seja, quando ele chegar no índice 2 o sistema pergunta para o usuário o 3º numero para a ordenação.

2 - fiz a seguinte alteração; no if existente no break alterei de cont == 2 para cont == 3, removi o if no ultimo laço for e funcionou como estava querendo

3 - Acho que agora ele não vai passar valor null.