Poderia me ajudar a encontrar o erro do código java

2 respostas
programaçãojava
H

Criei treis metodos contando com o main, um para verificar se o numero digitado tem mais digitos que 7 e o outro para VERIFICAR QUANTAS VEZES UM DiGITO SE REPETE. Alguem poderia me ajudar ?

import java.util.Arrays;
import java.util.Scanner;

public class Estudando{

public static void main(String [] args){

Scanner scan = new Scanner(System.in);

int x = pegarEntrada(scan);

Repeticao(x);

}

Long x;
char valor[];
    char val[] = {'0','1','2','3','4','5','6','7','8','9'}; 
    byte cont=0;
    public static int pegarEntrada(Scanner scan){
    for(;;){
        int x;
        System.out.print("Digite um numero inteiro de no mínimo 7 digitos: ");
        x = scan.nextInt(); 
        
        
        if(x < 7){
            System.out.println("Numero digitado inferior a 7 digitos. Repita a operacao");
            continue;
        }else
            break;
    }   
     public static void Repeticao(int x){
   valor = x.toString().toCharArray();

    System.out.println("RESULTADO:" );
    for(int i=0; i<=9; i++){
        for(int j=0; j<valor.length; j++){
            if(val[i] ==  valor[j]){
                cont++;
            }
        }
        System.out.println("O algarismo "+i+" aparece "+cont+" veze(s) no numero "+ x);
        cont=0;
    }
}

}

2 Respostas

I

1 - Porque criou outro post para o mesmo assunto/dúvida?
2 - Qual é a dúvida? É lançada alguma exceção ou mensagem de erro ou alerta? Se sim qual? É só um problema de lógica, ou seja compila sem erros, mas não traz o resultado esperado.
Como se vê, tem muita coisa em aberto.

Jelson1

Olhando o seu código fiz as seguintes alterações:

import java.util.Arrays;
import java.util.Scanner;

public class Estudando{
   public static void main(String [] args){
        Scanner scan = new Scanner(System.in);
        int x = pegarEntrada(scan);
        Repeticao(x);
   }
   
   public static int pegarEntrada(Scanner scan){
       int x;
       for(;;){
            System.out.print("Digite um numero inteiro de no mínimo 7 digitos: ");
            x = scan.nextInt(); 
      
            if(x < 7){
                System.out.println("Numero digitado inferior a 7 digitos. Repita a operacao");
            }else{
                break;
            }
       }
       return x; // você não estava retornando o valor!
    }
    
    public static void Repeticao(int x){
       char valor[];
       char val[] = {'0','1','2','3','4','5','6','7','8','9'}; 
       byte cont = 0;

       valor = x.toString().toCharArray();

       System.out.println("RESULTADO:" );
       for(int i=0; i<=9; i++){
           for(int j=0; j<valor.length; j++){
               if(val[i] ==  valor[j]){
                   cont++;
               }
           }
           System.out.println("O algarismo "+i+" aparece "+cont+" veze(s) no numero "+ x);
           cont=0;
       }
   }
}

Olhe com cuidado e compare as alterações que eu fiz!
Obs:

  1. Eu não testei o código, tentei preservar o máximo o que você fez, então ainda pode conter erros!
  2. Como o Iohannes falou não duplique tópicos!
Criado 19 de abril de 2020
Ultima resposta 20 de abr. de 2020
Respostas 2
Participantes 3