Opa gente, gostaria de uma dica para melhorar meu programinha[resolvido]

entao, eu tenho esse metodo aqui :

[code]public void registrar(int produto, int vendedor, int valor) {

	if ((produto == 1) && (vendedor == 1))
		++sales[0][0];
	else if ((produto == 1) && (vendedor == 2))
		++sales[0][1];
	else if ((produto == 1) && (vendedor == 3))
		++sales[0][2];
	else if ((produto == 1) && (vendedor == 4))
		++sales[0][3];
	else if ((produto == 2) && (vendedor == 1))
		++sales[1][0];
	else if ((produto == 2) && (vendedor == 2))
		++sales[1][1];
	else if ((produto == 2) && (vendedor == 3))
		++sales[1][2];
	else if ((produto == 2) && (vendedor == 4))
		++sales[1][3];
	else if ((produto == 3) && (vendedor == 1))
		++sales[2][0];
	else if ((produto == 3) && (vendedor == 2))
		++sales[2][1];
	else if ((produto == 3) && (vendedor == 3))
		++sales[2][2];
	else if ((produto == 3) && (vendedor == 4))
		++sales[2][3];
	else if ((produto == 4) && (vendedor == 1))
		++sales[3][0];
	else if ((produto == 4) && (vendedor == 2))
		++sales[3][1];
	else if ((produto == 4) && (vendedor == 3))
		++sales[3][2];
	else if ((produto == 4) && (vendedor == 4))
		++sales[3][3];
	else if ((produto == 5) && (vendedor == 1))
		++sales[4][0];
	else if ((produto == 5) && (vendedor == 2))
		++sales[4][1];
	else if ((produto == 5) && (vendedor == 3))
		++sales[4][2];
	else if ((produto == 5) && (vendedor == 4))
		++sales[4][3];
	
	Vendedores.setTotal(getTotal() + valor);
}[/code]

Gostaria de um jeito de torna-lo um pouco mais “elegante” sabe, pra nao ter esses 20 if/else ai, alguem poderia dar uma ideia?

public void registrar(int produto, int vendedor, int valor) {
  if ((produto > 0) && (produto < sales.lenght) && 
      (vendedor > 0) && (vendedor < sales[produto - 1].lenght)) sales[produto - 1][vendedor - 1]++;
  Vendedores.setTotal(getTotal() + valor);
}

Acho que acabei de fazer seu dever de casa… mas o ócio…

Uma outra idéia, para ficar mais legível, é usar uma classe de Assert importada estaticamente que tenha um método isBetweenInclusive, como:

public void registrar(int produto, int vendedor, int valor) {
  if (isBetweenInclusive(produto, 1, sales.lenght) &&
      isBetweenInclusive(vendedor, 1, sales[produto - 1].lenght)) sales[produto - 1][vendedor - 1]++;
  Vendedores.setTotal(getTotal() + valor);
}

boa, brigado

não é dever de casa, to fazendo por conta mesmo

obrigado denovo

Boa Victor …

Eu ía sugerir a mesma solução …

[]'s

[quote=Victor Maehira]Boa tarde!
Será que resolve?

public void registrar(int produto, int vendedor, int valor) { ++sales[produto - 1][vendedor - 1]; Vendedores.setTotal(getTotal() + valor); }[/quote]

Você deveria verificar os limites antes, como ela fazia e como eu fiz. O exemplo acima tem um ArrayOutOfIndexException em potencial.

Boa tarde!
Será que resolve?

public void registrar(int produto, int vendedor, int valor) { ++sales[produto - 1][vendedor - 1]; Vendedores.setTotal(getTotal() + valor); }