Meu mano, no título você pergunta como faz usando String, depois no final você quer sem usar if e else, e depois escrevendo vermelho??? Primeiro de tudo, formate seu código usando 4 espaços antes de inserí-lo, depois, esclareça sua dúvida de um modo que a gente consiga entender, pq se não, ninguém vai conseguir te ajudar amigo.
Em C você utiliza char[100] para simular uma String, em java você pode utilizar a String normalmente. Só lembre de começar com a letra maiúscula, se não, não funciona.
É que eu estou seguindo o exemplo do professor. Eu nem sei java. Eu só sei linguagem c de algorítimos. O professor inventou de dar Estrutura de Dados em java, sendo que ngm da turma estudou java
Acho que você não precisa mais, mesmo assim eu fiz aqui.
public static void main(String[] args) {
Semaforo s = new Semaforo(); //cria um semáforo
System.out.println(s.recebeEstadoCorrente("vermelho")); //imprime vermelho
System.out.println(s.recebeEstadoCorrente("verde")); //imprime verde
System.out.println(s.recebeEstadoCorrente("amarelo")); //imprime amarelo
}
public String recebeEstadoCorrente(String estado) {
if (estado.equalsIgnoreCase("vermelho")) //se for vermelho
return "vermelho"; //retorna o valor vermelho
else if (estado.equalsIgnoreCase("verde")) //senão, se for verde
return "verde"; //retorna o valor verde
else if (estado.equalsIgnoreCase("amarelo")) //senão, se for amarelo
return "amarelo"; //retorna o valor amarelo
else //se não for nenhuma dessas
return null; //retorna nulo
}
Você também poderia fazer assim:
public static void main(String[] args) {
Semaforo s = new Semaforo();
s.recebeEstadoCorrente("vermelho");
s.recebeEstadoCorrente("verde");
s.recebeEstadoCorrente("amarelo");
}
public void recebeEstadoCorrente(String estado) {
if (estado.equalsIgnoreCase("vermelho"))
System.out.println("Vermelho");
else if (estado.equalsIgnoreCase("verde"))
System.out.println("Verde");
else if (estado.equalsIgnoreCase("amarelo"))
System.out.println("Amarelo");
}
Tem outros modos de fazer também, por exemplo iniciando no construtor:
String estado; //atributo da minha classe
public static void main(String[] args) {
Semaforo s = new Semaforo("vermelho"); //cria um semáforo com o estado em vermelho
System.out.println("Estado: " + s.estado); //imprime Estado: vermelho
s.setEstado("verde"); //coloca o estado como verde
System.out.println("Estado: " + s.estado); //imprime Estado: verde
}
public Semaforo(String estado) { //construtor da classe Semaforo
this.estado = estado; //inicia a variável estado do objeto(this.estado) com um estado(estado)
}
public void setEstado(String estado) { //método para mudar o estado
this.estado = estado; //muda o estado do objeto(this.estado) para um novo estado(estado)
}
Enfim, existem diversas formas de fazer isso. Recomendo estudar um pouco sobre isso. Aqui alguns vídeos que podem te ajudar: