Vetor não aceita valor algum = variable nota might not have been initialized

4 respostas
hectorhansen

Bom.. estou tentando compilar esse codigo.. e esta dando o seguinte erro:

[color=red]Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - variable nota might not have been initialized
at placar.main(placar.java:28 )
[/color]

Li aqui no forum que estou tentando atribuir um valor a uma variavel nula.. mais como eu inicio ela para receber os valores sem q seja desssa forma.

import java.util.Scanner;
public class placar
{
    public static void main(String[] args)
    {
        Scanner
            input = new Scanner(System.in);
        int 
            num_alu=-1,nota[]=null,aux[]=null;
        String []
            nome = new String[100];
        String [] 
            auxString = new String[100];
        while(num_alu<0 || num_alu>100)
        {
            System.out.println("Digite a quantidade de alunos!");
            num_alu = input.nextInt();
            if (num_alu<0 || num_alu>100)
            {
                System.out.println(num_alu + " - Não é valido");
            }
        }
        for(int i=1;i<=num_alu;i++)
        {
            System.out.println("Digite o nome do "+ i +" aluno!");
            nome[i] = input.next();
            System.out.println("Digite a nota do "+i +" aluno");
            nota[i] = input.nextInt();
        }
        for(int i=1;i<=num_alu;i++)
        {
            if(nota[i]<nota[i+1])
            {
                aux[i]=nota[i];
                nota[i]=nota[i+1];
                nota[i+1]=aux[i];
                auxString[i]=nome[i];
                nome[i]=nome[i+1];
                nome[i+1]=auxString[i];
            }

            System.out.println("O Aluno "+nome[num_alu]+" foi reprovado.");
            System.out.println("Sua nota foi->"+nome[num_alu]);
        }
     }
}

4 Respostas

nel

Oi!

Eu só achei essa linha:

int num_alu=-1,nota[]=null,aux[]=null;

Onde tu faz algo do tipo?

nota[] = new int[10];

Inicializar um vetor com null é bem diferente de atribuir uma instancia a ele.
Como um vetor nulo pode receber valores? :slight_smile:

Abraços.

fernandosavio

Você está usando uma variável não inicializada.
Não se pode atribuir um valor a vet[i] se você nao declarou o tamanho do vetor.
O colega aí de cima falou certo. Altera aquele null que é ele o problema!

Rafael_Mesquita_Mour

hectorhansen beleza?

Cara, você está tentando atribuir um elemento a uma posição de um vetor que ainda não existe.

Na linha:

int num_alu=-1,nota[]=null,aux[]=null;

Você está apenas declarando a variável nota[] e aux[] que são arrays do tipo int.

Pra que esse código funcione da maneira como você deseja, declare e inicialize seus arrays usando o modelo:

int num_alu=-1;
int nota [] = new int[10]; //Ou outra quantidade qualquer
int aux [] = new int[10]; //Ou outra quantidade qualquer

Detalhe, acostume-se também a utilizar a convenção de nomeação de variáveis do Java, onde a primeira letra da primeira palavra deve ser minúscula e a primeira letra das demais palavras devem ser maiúscula, assim você evita criar variáveis usando o caractere “_”. Então no seu caso sua variável num_alu, fica numAlu.

Espero ter ajudado ;D

hectorhansen

Vlw pessoal era isso mesmo! fiz a mudança… eu estava realmente tentando atribuir um valor a uma variavel que eu tinha falado que era nula!

Criado 1 de setembro de 2011
Ultima resposta 2 de set. de 2011
Respostas 4
Participantes 4