Switch Case

2 respostas
C

Olá pessoal!

Somos nova no pedaço e estamos realmente começando.

Gostaríamos de saber se alguém pode nos explicar como funciona o código abaixo:

//Escreva uma aplicação de console capaz de 
//imprimir uma String especificada pelo usuário 
//(primeiro argumento recebido pelo programa) uma vez. 
//Caso exista como segundo argumento um inteiro válido, 
//a String deve ser impressa o número especificado de vezes.
package imprString;
public class ImprString {
		 public static void main(String args[]) {
			    int vezes = 1; // numero minimo de impressoes
			    switch (args.length) {
			      case 2:
			        try {
			          vezes = Integer.parseInt(args[1]);
			        } 
			        catch (NumberFormatException e) 
			        	{ vezes = 1;
			        }
			      case 1:
			        for(int i=0; i<vezes; i++)
			          System.out.println(args[0]);
			        break;
			      default:
			        System.out.println("uso: Exercicio02 string #_de_impressoes");
			    }
		}
}

Não compreendemos como o programa imprime um argumento recebido se foram passados 2 argumentos e consequentemente ele deveria cair no Case 2 e depois sair do switch, sem passar pelo método que imprime a string (ou seja o 1º argumento recebido).

Alguém pode nos explicar?
>

2 Respostas

WendersonLP

preste bem atenção no seu código,
depois do case 2: não existe o break que faria a saida do switch,
já no case 1: extiste o break, então depois desse case não passara pelo
defaul, já no caso do default não precisa já que ele é o último

C

Obrigada!

Cris e Dani

Criado 23 de junho de 2009
Ultima resposta 24 de jun. de 2009
Respostas 2
Participantes 2