Eu sei que break faz o fluxo sair do bloco do código onde ele foi inserido.
Sei também que return faz o fluxo sair de um metódo sem executar nenhum código que esteja após a instrução.Alguém sabe razão de se usar break dentro do if---------------------------------------------------------
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();
}
Em outro exemplo eu vi essa construção
public void actionPerformed(ActionEvent ev)
{
for(int i=0;i<items.length;i++)
if(ev.getSource()==items[i] } {
getContentPane().setBackground(colorValues[i]);
repaint();
return;
}
}
Eu tirei o break e return e o programa funciona perfeitamente sem eles.
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.
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.
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?)
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…