Dúvida Básica - Erro em 'for'

Boa noite a todos.

Possuo um erro no código:

[code]//Deitel JAVA - Como programar
//Exercício 4.19 pg122

import java.util.Scanner;
public class Vendedor {

double item1 = 239.99;
double item2 = 129.75;
double item3 = 99.95;
double item4 = 350.89;


String nome;
int qntItem1;
int qntItem2;
int qntItem3;
int qntItem4;
double totalVendido;
double comissao;
double salario;


//MÉTODOS SETTERS
public void setNome(String nome) {
	this.nome = nome;
}
public void setQntItem1(int qntItem1) {
	this.qntItem1 = qntItem1;
}
public void setQntItem2(int qntItem2) {
	this.qntItem2 = qntItem2;
}
public void setQntItem3(int qntItem3) {
	this.qntItem3 = qntItem3;
}
public void setQntItem4(int qntItem4) {
	this.qntItem4 = qntItem4;
}

//MÉTODO GET TOTAL VENDIDO
public double getTotalVendido() {
	return (item1*qntItem1)+(item2*qntItem2)+(item3*qntItem3)+(item4*qntItem4);
}	




//METODO MAIN
public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	Vendedor[] i = new Vendedor[3];
	
	//CRIA OBJETOS VENDEDORES
	for(int j=0; j<3; j++){
		i[j] = new Vendedor();			
	}
	
	//INSERE DADOS
	for(int j=0; j<3; j++){
		System.out.println("\nInsira o nome do Vendedor "+(j+1)+": ");
		i[j].setNome(input.nextLine());
		System.out.println("Insira a quantidade vendida do ITEM1: ");
		i[j].setQntItem1(input.nextInt());
		System.out.println("Insira a quantidade vendida do ITEM2: ");
		i[j].setQntItem2(input.nextInt());
		System.out.println("Insira a quantidade vendida do ITEM3: ");
		i[j].setQntItem3(input.nextInt());
		System.out.println("Insira a quantidade vendida do ITEM4: ");
		i[j].setQntItem4(input.nextInt());
		

		
	}
	
	for(int j=0; j<3; j++){
		System.out.println(i[j].nome);
	}
	                            
	                            
}

}
[/code]

Ele me pede:
1 - Nome
2 - Valor ITEM1
3 - Valor ITEM2
4 - Valor ITEM3
5 - Valor ITEM4

O correto seria pedir por 3 vezes, mas no segundo loop ele ‘pula’ o [1 - Nome] e já pede o [2 - Valor ITEM1]

O código está bem conciso, não consigo identificar o erro.

Alguém poderia me ajudar?

Obrigado desde já.

O problema é que como o ultimo item do for você captura utilizando
i[j].setQntItem4(input.nextInt());
na "memória" de entrada de dados ainda tem um "\n", pois o input está pegando somente o Inteiro "nextInt"…

Então após esse ultimo item coloque
input.nextLine();
para "limpar" o caracter "\n" em cache

seu for deverá ficar da seguinte forma:

    for(int j=0; j<3; j++){
        System.out.println("\nInsira o nome do Vendedor "+(j+1)+": ");
        i[j].setNome(input.nextLine());
        System.out.println("Insira a quantidade vendida do ITEM1: ");
        i[j].setQntItem1(input.nextInt());
        System.out.println("Insira a quantidade vendida do ITEM2: ");
        i[j].setQntItem2(input.nextInt());
        System.out.println("Insira a quantidade vendida do ITEM3: ");
        i[j].setQntItem3(input.nextInt());
        System.out.println("Insira a quantidade vendida do ITEM4: ");
        i[j].setQntItem4(input.nextInt());

        input.nextLine();		
    }

Muito obrigado,

também funcionou da seguitne forma:

alterei o i[j].setNome(input.nextLine()); que recebe a String e guarda em nome para i[j].setNome(input.next());

Alguém possui um artigo sobre a diferença de ‘nextInt’, ‘nextLine’ e ‘next’.