Ir ao conteúdo
  • Cadastre-se
Celestino Alona

Java Erro de impressão no for

Posts recomendados

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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Junte-se à conversa

Você pode postar agora e cadastrar-se depois. Se você tem uma conta, faça o login para postar.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restore formatting

  Só é possível ter até 75 emoticons.

×   O link foi automaticamente convertido para mostrar o conteúdo.   Clique aqui para mostrá-lo como link comum

×   Seu texto anterior foi restaurado.   Limpar o editor

×   You cannot paste images directly. Upload or insert images from URL.






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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!