Ir ao conteúdo
  • Cadastre-se
Celestino Alona

Java Erro de impressão no for

Recommended Posts

Bom dia a todos. Fiz um código usando JOptionPane (acabei de chegar na parte de GUI's) , porém na hora de imprimir o que eu quero não sai corretamente.

 

O usuário deve inserir alguns números e ao final deve ser mostrado o maior número inserido.

 

package MaiorNum;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class processos
{
    private int counter, number, largest;
    
    public void contador()
    {
        Scanner sc = new Scanner(System.in);
        
        for(counter = 0; counter < 10; counter++)
        {
            JOptionPane.showInputDialog(null, "%d° número : ", counter); /*O erro acontece aqui, pois na impressão
                                                                           aparece %d ao invés do número correspondente
                                                                           ao contador do for (counter)*/
            number = Integer.parseInt(sc.nextLine());
            
            if(counter == 0)
            {
                largest = number;
            }
            
            if(number > largest && counter > 0)
            {
                largest = number;
            }
        }
        
        String message = String.format("Maior número digitado : %d\n\n", largest);
        
        JOptionPane.showMessageDialog(null, message);
    }
    
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Celestino Alona Olá. A questão está na sua definição e ao uso de janelas. Do modo como está, após digitar o 1º número a janela é fechada e não volta mais. Eu não estudei o Java Swing, fui direto para o JavaFX, principalmente pelo fato do Swing ter sido descontinuado. Ou seja,  a Oracle parou completamente de investir no Java Swing.

Nesse caso, recomendo estudar JavaFX se tem interesse em trabalhar com interfaces gráficas em Java

A lógica para o seu código seria essa:


import java.util.Scanner;

public class processos {    
    
    private int[] number = new int[10];
    private int maior;
    private Scanner sc = new Scanner(System.in);
    
    public void contador() {        
        
        for (int i = 0; i < 10; i++) {
            System.out.print("Digite o " + (i + 1) + "º número: ");
            //JOptionPane.showInputDialog(null, (i + 1) + "º número : ");  // nessa formatação funciona ok, mas depois de digitar o 1º número a janela some
            number[i] = Integer.parseInt(sc.nextLine());      
        }
        
        maior = number[0];
        for (int i = 1; i < 10; i++) {
            if (number[i] > maior) {
                maior = number[i];
            }
        }
        
        //String message = String.format("Maior número digitado : %d\n\n", maior);
        
        //JOptionPane.showMessageDialog(null, message);
        System.out.println("Maior número digitado: " + maior);
    }
    
}

E aí no main ficaria assim:

public class Aplicacao {

    public static void main(String[] args) {
		
        processos p = new processos(); // cria um objeto da classe processos
		
        p.contador();	// chama o método contador
		
    }

}

Para o erro q aparece onde você mencionou tente isso:

JOptionPane.showInputDialog(null, (i + 1) + "º número : ");

 Não é a melhor resposta p dar mas vê se ajuda

adicionado 19 minutos depois

só completando:

eu não vejo muita lógica em alguém usar o seu tempo para estudar sobre um assunto q já pode ser considerado defasado.

Recomendo fortemente que invista no JavaFx, se pretende trabalhar com o Java e usar interface gráfica.

Porém, se porventura mesmo assim tiver interesse no Java Swing, segue um link com várias aulas práticas:

https://www.youtube.com/watch?v=w7EQDB7m9tc

Essa aula é apenas uma de algumas q foram liberadas pela plataforma em questão, no caso, a Softblue

 

Editado por giu_d
Correção no código
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×