Duvidas na questao da Kathy [RESOLVIDO]

10 respostas
B

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;

}

<a href="//System.out.println">//System.out.println</a>(d2);

<a href="//System.out.println">//System.out.println</a>(d1);

System.out.println((d1 == d2)?same old : newly new);

}

enum Days {M, T, W, TH, F, SA, SU};

}

10 Respostas

danieldomingues86

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

Anime

Oi,

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

B

Daniel

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

emanuelCruz

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

B
Essa virgula esta de intruso.
Anime

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

Vingdel

Boa Tarde, bessa08!

Como o Daniel disse, você pode usar break, assim:
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};
}
Por que você não quer usar esse tipo de interrupção?

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

Abraço!

B

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;
nel

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;

</blockquote>

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.

Vingdel

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!

Criado 6 de junho de 2011
Ultima resposta 7 de jun. de 2011
Respostas 10
Participantes 6