Duvidas na questao da Kathy [RESOLVIDO]

Caros por que quando o for each varre e chega no F , ele continua. Nao era para para no F devido eguals.

 public class McGee {  

public static void main(String[] args) {
Days d1 = Days.TH;
Days d2 = Days.M;
for(Days d: Days.values()) {
if(d.equals(Days.F));
d2 = d;
}
//System.out.println(d2);
//System.out.println(d1);
System.out.println((d1 == d2)?“same old” : “newly new”);
}
enum Days {M, T, W, TH, F, SA, SU};
}

Só irá parar se voce usar um break, para quebrar o ciclo dentro do if, senão a iteração continuará até sua totalidade.

Abraços,
Daniel

Oi,

Da uma olhadinha aqui…http://www.guj.com.br/posts/list/50115.java

Daniel

Como posso fazer com outra opçao sem ser com break , que ele seja igual F

este equals não está fazendo nada devido ao “;” no final da linha

 Essa virgula esta de intruso.

http://www.devdaily.com/java/using-java-enum-switch-tutorial

Boa Tarde, bessa08!

Como o Daniel disse, você pode usar break, assim:[code]public class McGee {

public static void main(String[] args) {
	Days d1 = Days.TH;
	Days d2 = Days.M;
	for(Days d: Days.values()) {
		if(d.equals(Days.F)){
			d2 = d;
			break;
		}
	}
	//System.out.println(d2);
	//System.out.println(d1);
	System.out.println((d1 == d2)?"same old" : "newly new");
}
enum Days {M, T, W, TH, F, SA, SU};

}[/code]Por que você não quer usar esse tipo de interrupção?

Sabendo o motivo ficará mais fácil de ajudar.

Abraço!

Entao Vingdel

Pensava quando o F fosse comparado atraves do egual e ia para a linha de baixo, ai nao precisava usar o break

for(Days d: Days.values()) {
if(d.equals(Days.F)){
d2 = d;

[quote=bessa08] Entao Vingdel

Pensava quando o F fosse comparado atraves do egual e ia para a linha de baixo, ai nao precisava usar o break

for(Days d: Days.values()) {
if(d.equals(Days.F)){
d2 = d;
[/quote]

Mas você vai para a linha de baixo, entretanto, a linha não tem uma condição de parada, portanto, o laço continua até que todas as opções sejam encerradas.
Abraços.

bessa08, precisa, pois o IF apena verifica a condição, sendo verdadeira executa o código em seu corpo de chaves, caso contrário não executa.

Já o equals simplesmente compara e retorna TRUE ou FALSE (valores que satifazem o IF, nada mais.

Então nada diz para o FOR parar, por isso é necessário o break.

Espero que tenha ajudado, qualquer dúvida pergunte.

Se já estiver tudo claro quanto a questão da Kathy, adicione [RESOLVIDO] no título do tópico.

Abraço!