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
Anime
Junho 6, 2011, 8:36pm
#3
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.
Anime
Junho 6, 2011, 10:00pm
#7
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;
nel
Junho 7, 2011, 1:18pm
#10
[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!