Ir para conteúdo
Fórum Script Brasil
  • 0

Oque Tem De Errado Nesse Metodo?


frnd

Pergunta

public void exibirValores() {

String meses[] = ("Janeiro", "Fevereiro","Março",

"Abril", "Maio", "Junho","Agosto","Setembro","Outubro","Novembro","Dezembro");

for (int i=0; i < 12; i++)

System.out.println(meses + ": "+ totalMes );

}

}

Dá sempre erro na segunda linha...

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

/**

* @(#)Vendas.java

*

*

* @author

* @version 1.00 2007/8/1

*/

Classe Vendas

import java.util.Scanner;

public class Vendas {

private float totalMes[];

private int ano;

public Vendas(int ano) {

totalMes = new float[12];

this.ano = ano;

}

public void lerValores (int mesi, int mesf){

Scanner entrada = new Scanner( System.in );

if (mesi > mesf )

System.out.println("Meses inválidos!");

else {

{

for (int i=mesi; i <= mesf; i++)

{

System.out.print("mês" + i + ": ");

totalMes[ i - 1 ] = entrada.nextFloat();

}

}

}

} public void exibirValores() {

String meses[] = {"Janeiro", "Fevereiro","Março","Abril", "Maio", "Junho","Agosto","Setembro","Outubro","Novembro","Dezembro"};

for (int i=0; i < 12; i++)

System.out.println(meses + ": "+ totalMes );

}

}

-----------------------------

Metodo Main

public class VendasMain {

public static void main(String args[]){

Vendas v = new Vendas(2007);

v.lerValores(1,3);

v.exibirValores();

}

}

quando eu digito 3 valores, eles mostra os resultados certinhos e tals.. mas no final mostra essa mensagem...

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11

at Vendas.exibirValores(Vendas.java:40)

at VendasMain.main(VendasMain.java:16)

resolvido... o for deve estar assim

for (int i=0; i < 11; i++)

pois existem 11 partes na array, contando com 0.. por isso que fica 11

certo?

E se eu quisesse somar todos os meses informados?

Link para o comentário
Compartilhar em outros sites

  • 0

você fala somar os valores de cada mês?se for pode declarar uma variável total logo depois de private int ano e no for incrementar ela.

...
for (int i=mesi; i <= mesf; i++)
{
System.out.print("mês" + i + ": ");
totalMes[ i - 1 ] = entrada.nextFloat();
total += entrada.nextFloat();
}
..

ai é só exibir seu valor

Link para o comentário
Compartilhar em outros sites

  • 0

você esqueceu o mês de JULHO... o vetor só tem 11 posicoes, logo o laço for vai acessar uma posicao inexistente do array.

PS.: frnd, quando c for postar códigos use a tag CODE e deixe o código identado... facilita a leitura

Link para o comentário
Compartilhar em outros sites

  • 0

é... bom, a ordenação é um clássico na programação... todo livro fala disso e acredito que você saiba fazer... (tá só com preguiça hehehhe)

pra facilitar, eu usaria ArrayList ou HashMap (preferencialmente) pois já tem muitos métodos prontos interessantes.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

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

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...