(resolvido) Error: unreachable statement

eu li que esse erro é por causa do loop infinito, mais nao entendi como arrumar =[

my code:

[quote]import java.io.*;

class Opera {
public static void main (String[] args) {

	Estacao joven = new Estacao("Joven Pan",101);
	Estacao mix = new Estacao("Mix",102);
	Estacao espaco = new Estacao("Espaco Rap",103);
	
	String comando;
	int    valor;
	
	Radio r = new Radio();
	String[] onOff = {"Radio Desligada.","Radio Ligada."};
	
	r.ligaDesliga(); r.addEstacao(joven); r.addEstacao(mix); r.addEstacao(espaco);
	System.out.print(onOff[r.getOnOff()] + "\n");
	
	while(true){
		
		System.out.print("> ");
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String command = null;
		
		try {
			command = br.readLine();
		} catch (IOException ioe) {
			System.out.println("Error: O programa não conseguiu ler o comando.");
			System.exit(1);
		}
		
		comando = command.substring(0,2) + " ";
		valor   = Integer.parseInt(command.substring(2).toString()); 
			
		if(comando.equals("/v ")){

			r.setVol(valor);
			System.out.print("Volume da radio: " + r.getVol() + "\n");

					
		}else if(comando.equals("/f ")){
	
			r.setFrq(valor);
			System.out.print("Estacao: " + r.estacoes[r.getFrq()].getEstName() + " - " + r.estacoes[r.getFrq()].getEstFrq() + "\n");
	
		}else if(comando.equals("/? ")){
			
			System.out.print("\nComandos:\n\n/? == lista de comandos\n/v == ajustador de volume (ex: /v 103, muda o volume para 103)\n/f == ajustador de frequencia (ex /f 105, muda a frequencia para 105)\n/e == sair do programa.\n\n");
		
		}else if(comando.equals("/e ")){
			
			System.exit(1);
			
		}else{
			System.out.print("Comando invalido. Para ver a lista de comandos digite /?\n");
		}
	}
	
	[color=red]r.ligaDesliga()[/color];
	System.out.print(onOff[r.getOnOff()] + "\n");
}

}[/quote]

a linha vermelha é a linha do erro…

--------------------Configuration: --------------------
C:\Documents and Settings\Luiz Fernando\Meus documentos\Java\comecandoZero\Opera.java:59: unreachable statement
r.ligaDesliga();
^
1 error

Process completed.

obrigado desde ja
abracos


o erro era que nao chegava a executar as ultimas duas linhas por causa do loop infinito… passou dispercebido :stuck_out_tongue:

abracos

1 curtida

Em nenhuma momento você estipula alguma condiçao para sair do laço

while( true )

Você pode fazer assim

	else if( comando.equals( "/e " ) )
	{
		break;
	}
	else
	{
		System.out.print( "Comando invalido. Para ver a lista de comandos digite /?\n" );
	}
} // fim do while( true )

r.ligaDesliga();
System.out.print( onOff[ r.getOnOff() ] + "\n" );
System.exit( 1 );

} // fim do main

A identação ajuda … ehehehehe