Olá a todos, alguém poderia me dizer porque o case não executa os ifs de dentro?
/*
* maquinaEstados2.java
*
* Created on 23 de Abril de 2006, 11:03
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package leitordeoperacoes;
import java.util.Scanner;
/**
*
* @author fabio
*/
public class maquinaEstados2 {
private String operador="";
private String conjunto="";
private String etapa="";
private String operacao="";
private String cancelar="";
private String finalizar="";
private String pausarSuspender="";
private String fimEtapa="";
public String entrada="";
Scanner input = new Scanner(System.in);
int estado=1;
/** Creates a new instance of maquinaEstados2 */
public maquinaEstados2() {
inicial(estado);
}
private void inicial(int estado) {
System.out.printf("Estado: %d\n", estado);
switch (estado) {
case 1: // OPERADOR ESTADO 1
operador = input.next();
if (operador.substring(0,2).equals("01")) {
System.out.printf("Operador Estado 1: %s", operador);
inicial(2);
}
else {
System.err.printf("Operador Inválido: %s", operador);
inicial(1);
}
case 2: // CONJUNTO
conjunto = input.next();
cancelar = conjunto;
if (conjunto.substring(0,2).equals("02")) {
System.out.printf("Conjunto: %s", conjunto);
inicial(3);
}
if (cancelar.substring(0,2).equals("09")) {
System.out.printf("Cancelar: %s", cancelar);
inicial(1);
}
else {
System.err.printf("Conjunto Inválido: %s", operador);
inicial(2);
}
case 3: //LÊ OPERADOR DENOVO
operador = input.next();
if (operador.substring(0,2).equals("03")) {
System.out.printf("Operador Estado 3: %s", operador);
inicial(4);
}
else {
System.err.printf("Operador Inválido: %s", operador);
inicial(3);
}
case 4:
break;
}
}
}