Switch - Case

7 respostas
Paobidalla
Fala Galera blz??? To precisando de uma ajudinha, estou usando um bloco de swicht e case com varios comandos dentro de cada case, e os dois primeiros comandos saem juntos (digamos assim) sendo que so posso entrar com o valor de uma varialvel só a outra fica vazia, alguem tem ideia de como posso resolver este problema???
import java.util.*;


public class aprimo {

	public static void main (String Args []){
		
		Veiculos myVeiculos = new Veiculos();
		Scanner input = new Scanner (System.in);
		VeiculosPasseio myVeiculosPasseio = new VeiculosPasseio ();
		VeiculoCarga myVeiculoCarga = new VeiculoCarga ();
		
		int escolha;
		String a = null;
		
		System.out.println("Bem-Vindo ao Cadastro de Veiculos! \n\n\n");
		
		System.out.println("Digite a cor do veiculo:");
		 String cor = input.nextLine();
	     myVeiculos.setCor(cor);
	     // leia a variavel cor
	      
	     
	      
		System.out.println("Digite o ano do veiculo:");
		String ano = input.nextLine();
		myVeiculos.setAno(ano);
		// leia a variavel ano
		
		System.out.println("Digite o motor do veiculo:");
		String motor = input.nextLine ();
		myVeiculos.setMotor(motor);
		// leia a variavel motor
		
		System.out.println("Digite a marca do veiculo:");
		String marca = input.nextLine();
		myVeiculos.setMarca(marca);
		// leia a variavel marca
		
		System.out.println("Digite o modelo do veiculo:");
		String modelo = input.nextLine();
		myVeiculos.setModelo(modelo);
		// leia a variavel modelo
		
		System.out.println("Digite tipo de combustivel do veiculo:");
		String tipoCombustível = input.nextLine();
		myVeiculos.setTipoCombustível(tipoCombustível);
		// leia a variavel tipoCombustível
		
		System.out.println("Digite a quantidade de veiculos no estoque:");
		String estoque = input.nextLine();
		myVeiculos.setEstoque(estoque);
		// leia a variavel estoque
				
		System.out.println("Tecle a opcao desejada \n" +
				"*A* - Para veiculos de passeio.\n" +
				"*B* - Para veiculos de carga. \n \n");
		a = input.next();
		escolha = Integer.parseInt(a);
		//leia a opcao escolhida
		
		switch (escolha){
		
		case 1:	System.out.println("VEICULOS DE PASSEIO");
// caracteristicas do veiculo passeio
[color=red]System.out.println("O carro possue itens de serie quais?"); String itensSerie = input.nextLine(); myVeiculosPasseio.setItensSerie(itensSerie); // leia a variavel itensSerie System.out.println("O carro possue itens opcionais quais?"); String itensOpcionais = input.nextLine(); myVeiculosPasseio.setItensOpcionais(itensOpcionais); // leia a variavel itensOpcionais[/color]
System.out.println("Qual o numero de portas?");
		String numeroPortas = input.nextLine();
		myVeiculosPasseio.setNumeroPortas(numeroPortas);
		// leia a variavel numeroPortas
						
		System.out.println("Tamanho do compartimento de bagagens:");
		String capacidadeTraseira = input.nextLine();
		myVeiculosPasseio.setCapacidadeTraseira(capacidadeTraseira);
		// leia a variavel capacidadeTraseira
			; // fim dos atributos veiculos de passeio
			break;
			case 2:
				[b]System.out.println("Digite a capacidade de carga do veiculo:\n");
				String capacidadeCarga = input.nextLine();
				myVeiculoCarga.setCapacidadeCarga(capacidadeCarga);
				
				System.out.println("Digite qual a quantidade de espaco para passageiros");
				String numeroPassageiros = input.nextLine();
				myVeiculoCarga.setNumeroPassageiros(numeroPassageiros);[/b]
				
				System.out.println("Carro equipado com Rastreamento via satelite");
				String rastreamentoSatelite = input.nextLine();
				myVeiculoCarga.setRastreamentoSatelite(rastreamentoSatelite);
				
				;
				break;
				default: System.out.println("opcao invalida");
				
						
		System.out.printf("Ano: %s \n", myVeiculos.getAno());
		System.out.printf("Cor: %s \n ", myVeiculos.getCor()); 
		System.out.printf("Motor: %s \n", myVeiculos.getMotor()); 
		System.out.printf("Marca: %s \n",myVeiculos.getMarca());
		System.out.printf("MOdelo: %s \n", myVeiculos.getModelo());
		System.out.printf("Movido a: %s \n",myVeiculos.getTipoCombustível());
		System.out.printf("Saldo de: %s pecas \n", myVeiculos.getEstoque());
		
		
		
	}

	}

}

os trechos em vermelho sao os que eu acredito que sejam as causas do meu problema maaasss....
agradecido.

7 Respostas

davidbuzatto

Está difícil de entender o q vc quer fazer… Tem como vc explicar melhor? O que está dando errado?

B

O itensSerie fica vazio né?

Esse Scanner é dono de fazer isso quando você usa um input.next() e um input.nextLine() logo após.

Tem trocentas soluções no fórum, mas não lembro nenhuma…

Paobidalla

Fala David blz?
Seguinte, quero fazer um programa em que as classes veiculo passeio e veiculo carga herdem atributos da veiculo (no caso cor, ano, essas coisas) mas no momento em que o case começa a executar, os dois primeiros comandos sao exibidos juntos na tela e assim so consigo entrar com um valor. tipo:

case 1:	System.out.println("VEICULOS DE PASSEIO");
// caracteristicas do veiculo passeio
		
		System.out.println("O carro possue itens de serie quais?");
		String itensSerie = input.nextLine();
		myVeiculosPasseio.setItensSerie(itensSerie);
		// leia a variavel itensSerie
		
		System.out.println("O carro possue itens opcionais quais?");
		String itensOpcionais = input.nextLine();
		myVeiculosPasseio.setItensOpcionais(itensOpcionais);
		// leia a variavel itensOpcionais

E esta saida é exibida…

VEICULOS DE PASSEIO
O carro possue itens de serie quais?
O carro possue itens opcionais quais?

Paobidalla

Obrigado Bruno eu mudei todos os input, para next() e deu certo…
Vlw galera

davidbuzatto

Olá.

Como o amigo acima disse, seu problema está no next().

Tente de substituir

a = input.next(); escolha = Integer.parseInt(a);

por

escolha = input.nextInt();

Avise se funcionou.

Paobidalla

Nao deu certo “impossivel converte String to Int,” o problema estava com o nexLine() eu coloquei so o next e funcionou…
mas agora estou com outra duvida…
Como vou fazer para exibir todos os resultados? pq da maneira que fiz eles nao sao exibidos, seria por causa dos break;`s?

import java.util.*;


public class aprimo {

	public static void main (String Args []){
		
		Veiculos myVeiculos = new Veiculos();
		Scanner input = new Scanner (System.in);
		VeiculosPasseio myVeiculosPasseio = new VeiculosPasseio ();
		VeiculoCarga myVeiculoCarga = new VeiculoCarga ();
		
		int escolha;
		String a = null;
		
		System.out.println("Bem-Vindo ao Cadastro de Veiculos! \n\n\n");
		
		System.out.println("Digite a cor do veiculo:");
		 String cor = input.nextLine();
	     myVeiculos.setCor(cor);
	     // leia a variavel cor
	      	      
		System.out.println("Digite o ano do veiculo:");
		String ano = input.nextLine();
		myVeiculos.setAno(ano);
		// leia a variavel ano
		
		System.out.println("Digite o motor do veiculo:");
		String motor = input.nextLine ();
		myVeiculos.setMotor(motor);
		// leia a variavel motor
		
		System.out.println("Digite a marca do veiculo:");
		String marca = input.nextLine();
		myVeiculos.setMarca(marca);
		// leia a variavel marca
		
		System.out.println("Digite o modelo do veiculo:");
		String modelo = input.nextLine();
		myVeiculos.setModelo(modelo);
		// leia a variavel modelo
		
		System.out.println("Digite tipo de combustivel do veiculo:");
		String tipoCombustível = input.nextLine();
		myVeiculos.setTipoCombustível(tipoCombustível);
		// leia a variavel tipoCombustível
		
		System.out.println("Digite a quantidade de veiculos no estoque:");
		String estoque = input.nextLine();
		myVeiculos.setEstoque(estoque);
		// leia a variavel estoque
				
		System.out.println("Tecle a opcao desejada \n" +
				"*A* - Para veiculos de passeio.\n" +
				"*B* - Para veiculos de carga. \n \n");
		a = input.next();
		escolha = Integer.parseInt(a);
		//leia a opcao escolhida
		
		switch (escolha){
		
		case 1:	System.out.println("VEICULOS DE PASSEIO");
// caracteristicas do veiculo passeio
		
		System.out.println("O carro possue itens de serie quais?");
		String itensSerie = input.next();
		myVeiculosPasseio.setItensSerie(itensSerie);
		// leia a variavel itensSerie
		
		System.out.println("O carro possue itens opcionais quais?");
		String itensOpcionais = input.next();
		myVeiculosPasseio.setItensOpcionais(itensOpcionais);
		// leia a variavel itensOpcionais
		
		System.out.println("Qual o numero de portas?");
		String numeroPortas = input.next();
		myVeiculosPasseio.setNumeroPortas(numeroPortas);
		// leia a variavel numeroPortas
						
		System.out.println("Tamanho do compartimento de bagagens:");
		String capacidadeTraseira = input.next();
		myVeiculosPasseio.setCapacidadeTraseira(capacidadeTraseira);
		// leia a variavel capacidadeTraseira
			; // fim dos atributos veiculos de passeio
			break;
			case 2:
				//atributos do veiculo de carga
				
				System.out.println("Digite a capacidade de carga do veiculo:\n");
				String capacidadeCarga = input.next();
				myVeiculoCarga.setCapacidadeCarga(capacidadeCarga);
				
				System.out.println("Digite qual a quantidade de espaco para passageiros");
				String numeroPassageiros = input.next();
				myVeiculoCarga.setNumeroPassageiros(numeroPassageiros);
				
				System.out.println("Carro equipado com Rastreamento via satelite");
				String rastreamentoSatelite = input.next();
				myVeiculoCarga.setRastreamentoSatelite(rastreamentoSatelite);
				
				;
				// fim dos atributos de veiculos de carga
				
				break;
				default: System.out.println("opcao invalida");
				
						
		System.out.printf("Ano: %s \n", myVeiculos.getAno());
		System.out.printf("Cor: %s \n ", myVeiculos.getCor()); 
		System.out.printf("Motor: %s \n", myVeiculos.getMotor()); 
		System.out.printf("Marca: %s \n",myVeiculos.getMarca());
		System.out.printf("MOdelo: %s \n", myVeiculos.getModelo());
		System.out.printf("Movido a: %s \n",myVeiculos.getTipoCombustível());
		System.out.printf("Saldo de: %s pecas \n", myVeiculos.getEstoque());
		
		
		
	}

	}

}

o usuario entra com os itens do carro normal, depois ele escolhe qual tipo de veiculo ele quer e nesses dois tipos cada um tem uma particularidade quero imprimir as particularidades e os atributos normais.

claudneto

O break não pode ser colocado apenas no fim do switch??

no caso depois do default…

meu professor na facul sempre coloca o break no fim…

agora fiquei em dúvida…tenta testar desse jeito…

não sei se é isso

Criado 14 de agosto de 2008
Ultima resposta 15 de ago. de 2008
Respostas 7
Participantes 4