Pessoal, boa noite!!!
Sou novo aqui, queria pedir a ajuda de vcs, estou aprendendo java, e estou tentando fazer um script de reserva de passagem aérea.
O código abaixo, ele da erro e para, como faço pra passar pro proximo passo, que no caso ai ele entraria no while.
Tentei pesquisar e não consegui achar nada, teria como me explicar, sou estudante e estou tentando aprender… =)
Ah não terminei o código, estou tentando, e se estou indo no caminho certo.
Vlw galera!
[code]import javax.swing.;
import java.util.;
public class reserva {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] voo = new int[38];
int[] qlug = new int[300];
int i, nvoo;
int rg = 0;
int lug = 0;
// contagem de voos de 1 a 37
for (i = 1; i < voo.length; i++){
voo[i] = i;
}
// iserção das vagas em cada um dos 37 voos.
for (i = 1; i< qlug.length; i++){
System.out.println("Digite a quantidade de vagas para o Voo numero: " +voo[i]);
qlug[i]= sc.nextInt();
}
// enquanto a identidade for diferente de 9999, irá continuar pedir a identidade.
while(rg != 9999){
System.out.println("Digite o numero da identidade:");
rg = sc.nextInt();
if(voo.length < 38){
System.out.println("Digite o numero do voo desejado:");
voo[i] = voo[i] - i;
} else {
System.out.println("Este voo não existe!");
}
if(qlug.length > 0){
System.out.println("");
}
}
}
}
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 38
at reserva.main(reserva.java:18)
Eu li sobre isso, fala que ele não consegue preencher o array 38, eu sei pq, é pra ir até 37 msm…
eu quero q passe adiante, não retorne o erro… deu pra entender ?
O erro é porque seu segundo for percorre qlug.length que tem 300 posições de array, enquanto voo possui apenas 38 (de 0 a 37). Sua variável i dentro deste for iria variar então de 0 a 299. Quando chega à i com valor 38, o código tenta acessar a posição voo[38] e o erro acontece. Seu for deveria percorrer voo.length.
// iserção das vagas em cada um dos 37 voos.
for (i = 1; i< qlug.length; i++){
System.out.println("Digite a quantidade de vagas para o Voo numero: " +voo[i]);
qlug[i]= sc.nextInt();
}
Mais uma dúvida:
No código abaixo, ele imprime o numero do voo que é o vetor Voo e a quantidade de vagas que eu cadastrei para cada voo.
Como faço para associar os dois, vou explicar:
Para o Voo 1: Tem 20 vagas disponiveis. (já exibe no código abaixo)
Proximo passo, o cliente registrado pelo RG seleciona o Voo(X) e pede 5 vagas.
Proximo passo, subtrai do Voo(X), 5 vagas, e ai fica com 15.
Já vou deixando claro que é um exercício de faculdade, porém não quero scripts já resolvidos por programadores experiêntes.
Quero tiver como me auxiliar, como fazer, qual comando jogar, e pq?
No mais, Obrigado!
[code]import java.util.;
import javax.swing.;
public class Reserva {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] Voo = new int[4];
int[] Poltronas = new int[4];
int i, j, nRG;
int nVoo;
int nPoltronas;
int RG = 0;
// contagem do vetor Voo
for (i = 1; i < Voo.length; i++) {
Voo[i] = i;
}
// contagem do vetor Poltronas
for (j = 1; j < Poltronas.length; j++){
Poltronas[j] = j;
}
// Inserção das poltronas disponíveis em cada um dos 4 voos.
for (i = 1; i < Voo.length; i++) {
System.out.println("Digite a quantidade de vagas para o Voo numero: " + Voo[i]);
Poltronas[1] = sc.nextInt();
}
// Imprime a lista de Voos + Poltronas disponiveis
Arrays.sort(Voo);
System.out.println("Lista de vagas disponíveis:");
for (i = 1; i <Voo.length; i++){
System.out.println("Para o voo "+Voo[i]+" existem:\n ["+Poltronas[1]+"] disponíveis.");
}// Inserção do RG do cliente
if(RG != 9999){
System.out.println("Digite o número da sua identidade");
nRG = sc.nextInt();
System.out.println(nRG);
while(nRG != 99999){
}
}
}