Parece que o uso do break nesse caso é só pra sair do loop e não executar iterações desnecessárias…
cv11 like
Cara, eu não entendi lhufas do seu codigo. Da proxima, pelo amor ao saco dos pobres usuários do GUJ, use as tags code e /code.
Tentei reformatar o codigo, mas ele tah com erros de sintaxe, então eu não consegui entender direito o que vc quer. É isso, o código que vc postou?
public void actionPerformed(ActionEvent event) {
for (int count = 0; count < colorItems.length; count++)
if (colorItems[count].isSelected()) {
displayLabel.setForeground(colorValues[count]);
break;
}
for (int count = 0; count < fonts.length; count++)
if (event.getSource() == fonts[count]) {
displayLabel.setFont(
new Font(fonts[count].getText(), style, 72));
break;
}
repaint();
}
E, no outro exemplo:
public void actionPerformed(ActionEvent ev) {
for (int i = 0; i < items.length; i++) {
if (ev.getSource() == items[i]) {
getContentPane().setBackground(colorValues[i]);
repaint();
return;
}
}
}
R
Rosauro_Barcia_Fonse
Resposta para CV. Eu mostre apenas dois trechos de codigo e estão corretos.Como eu disse anteriormente causa-me dúvida o uso do break dentro do if e no outro exemplo o return dento de um if.Esses dois casos eu tirei do livro Java como programar do Deitel Exercício13.10 e13.11.
cv1
Sendo assim…
O break dentro desse if serve para sair do loop - neste caso, o for. Nao faz sentido nenhum ter um break dentro de um if que nao está em um loop, e talvez por isso vc tenha ficado confuso
Entao, pra piorar, tente dizer o que esses dois métodos imprimem:
Em atenção ao CV. No primeiro exemplo quando i==5 ,o break quebra o loop no 5,mas continua o loop .No segundo exemplo voce fez um bloco rotulado .neste caso quando i==5 o break termina o bloco.Voce esta certo que no exemplo do Deitel o break esta ali para sair do loop do for ,mas esse break é desnecessário,como o return, também é.Obrigado pela atenção.RBarcia Rio de Janeiro.
smota
Hummm … não é desnecessário, na verdade é uma optimização, se ele encontrar a condição logo nas primeiras iterações ele para o loop e não fica fazendo um monte de jumps, incrementos e verificações desnecessárias (lembra que já encontramos o que queriamos?)
fenrir1 like
Nem o break nem o return são desnecessários!
No primeiro código, colorItems é um array. Imagine que você tem 20.000 elementos nesse array. E justamente o primeiro é o que está selecionado, satisfazendo o if. Sem o break ali, o laço vai continuar percorrendo os outros 19.999 elementos sem necessidade, pois ele já achou o que queria! A mesma coisa vale para o segundo laço.
Quanto ao return, vale o mesmo comentário acima! Ao invés dele, poderia ter colocado um break, que o resultado seria rigorosamente o mesmo! Apenas se quis que o código retornasse imediatamente. De repente se pode querer fazer algum tratamento caso não encontre o que se procura no laço…