Problema com break no loop

Entao… o problema que tenho aqui é meio bestinha mas vai ajudar um bucado.
Seguinte, estou fazendo esta rotinazinha aqui pro jogo da velha. Vou colocar pra retornar se há um vencedor ou nao, ai vem o problema.

Como posso fazer para o loop parar de executar, pq ex.:
vencedor = true = ele tinha q parar o loop, fiz um teste aqui mas nao consegui fazer… alguem tem como me dar uma dica ai?

tipo nao sei se existe algo como break loop;srsrsssr

for(int cont=1; cont<10; cont++){ if(cont%2 == ini){ jogo.setPosicao(jogadores.getJogador1(),jogadores.getIden1()); } else{ jogo.setPosicao(jogadores.getJogador2(),jogadores.getIden2()); } }

Usa break:

for(int i=0;i&lt10;i++)
    	 {
    		 if(i&gt5)
    			 break;
    		 System.out.println(i);
    	 }

entao eu fiz desta forma aqui, mas nao funcionou nao.

for(int cont=1; cont<10; cont++){ if(cont%2 == ini){ jogo.setPosicao(jogadores.getJogador1(),jogadores.getIden1()); if(jogo.getVencedor()==true){ break; } } else{ jogo.setPosicao(jogadores.getJogador2(),jogadores.getIden2()); if(jogo.getVencedor()==true){ break; } } }

O código aparenta estar correto! Tenta imprimir na tela o resultado de getVencedor, veja se está retornando true!

Se nada mais funcionar, faça assim:

cont=10;

assim, ele pára o loop tbm ^^
Chama-se POG --&gt Programação Orientada a Gambiarras:

http://desciclo.pedia.ws/wiki/POG

Faça assim:

if(jogo.getVencedor()==true){ System.out.println("Vencedor..."); break; }

Só pra saber se está entrando na sua condição, pois como o Guilherme falou, o código aparenta está correto.

Caso não entre na condição acima, o problema deve ser no método getVencedor().

T+

uma solução bem POGramatica seria:

if(jogo.getVencedor()==true){
System.out.println(“Vencedor…”);
count = 10;
}

outra mais POGramatica ainda seria:

for(int cont=1; cont<10 && cont>0; cont++){
if(cont%2 == ini){
jogo.setPosicao(jogadores.getJogador1(),jogadores.getIden1());
if(jogo.getVencedor()==true){
cont = 0;
}
}
else{
jogo.setPosicao(jogadores.getJogador2(),jogadores.getIden2());
if(jogo.getVencedor()==true){
cont = 0;
}
}
}

outra mais POGramaticamente mais POG ainda…

[code]

try{

for(int cont=1; cont<10; cont++){
if(cont%2 == ini){
jogo.setPosicao(jogadores.getJogador1(),jogadores.getIden1());
if(jogo.getVencedor()==true){
int x = 0;
int y = 2;
int z = y/x;
}
}
else{
jogo.setPosicao(jogadores.getJogador2(),jogadores.getIden2());
if(jogo.getVencedor()==true){
int x = 0;
int y = 2;
int z = y/x;
}

}catch(AritimeticException e){
System.out.println(“Vencedor”);
}
}
[/code] }

assim:


for(int cont=1; cont<10; cont++){
if(vencedor == true)
break;
}

obs.: eu faria assim levando em conta que vencedor é do tipo boolean… o break faz a instrução for parar de executar… e dar continuidade na linha apos o for. :d

po entao o get nao esta errado nao… eu fiz assim

declarei:

private boolean vencedor = false;

metodo:

public boolean getVencedor(){
	return(this.vencedor);
	}

eu fiz com o break e nao fununciou acho q vou ter de usar o POG…srsrsrsr

tem ctza que esta indo no seu if que contem o break?
coloca um System.out.println() ou debuga pra ver se passa la…

Cara, debuga o seu programa e coloca um break point na linha do if. E veja qual é o valor que seu get está recebendo. è provavel que vc não esteja retornando true. Qq coisa postar… abraços

Você fez o que falei???

Por que o break funciona perfeitamente, faz o teste ai:

for(int i = 0; i < 10; i++) { if(i == 6) { break; } System.out.println("i = " + i); } System.out.println("Fora do loop");

A saída desse trecho de código será:

i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 Fora do loop

Note que quando o i é igual a 6 (if(i == 6)), o loop é enderrado e a execução vai pra primeira linha depois do loop(System.out.println(“Fora do loop”);)…

T+

[quote=henry.everton]po entao o get nao esta errado nao… eu fiz assim

declarei:

private boolean vencedor = false;

metodo:

public boolean getVencedor(){
	return(this.vencedor);
	}

eu fiz com o break e nao fununciou acho q vou ter de usar o POG…srsrsrsr[/quote]

??? E onde voce seta “vencedor=true” ???

cara ja fiz de tudo aqui … q raiva… coloquei o system pra imprimir mas puts… nem imprime o getVencedor… vou dar mais uma olhada aqui qualquer coisa eu grito denovo fazer o q!!!

mas de qualquer forma valeu pra todos