While Não executa

1 resposta
java
E

Prezados, tenho apenas 2 semanas de programação em java e estou tentando executar o programa abaixo para retornar a quantidade de vezes que executou até que o resultado seja igual a string inicialmente setada.
Mas o loop não está ocorrendo no WHILE. PODEM ME AJUDAR???

public static void main(String[] args) {

	List<Integer> numeros = new ArrayList<>();

	int contador = 0;
	// String flag = "";
	String resultado = "02 08 18 27 38 60 ";
	String resul = "";

	for (int i = 1; i <= 60; i++) {
		numeros.add(i);
	}

	do {

		contador++;

		Collections.shuffle(numeros);
		List<Integer> escolhidos = numeros.subList(0, 6);

		Collections.sort(escolhidos);

		for (Integer escolhido : escolhidos) {
			if (escolhido < 10) {
				System.out.print("0" + escolhido + " ");
				resul = resul + "0" + escolhido + " ";
			} else {
				System.out.print(escolhido + " ");
				resul = resul + escolhido + " ";
			}
		}

	} while (resul.equals(resultado));

	
	System.out.println("O código executou: " + contador);
}

1 Resposta

J

Sua condição acima diz que é pra executar o loop novamente quando resul for igual a resultado (true)…

Como provavelmente os valores são diferentes então ele sai do Loop, pois sua condição é falsa.

para que ele execute mais vezes, voce deve dizer que “enquanto result for diferente de resultado” continue executando.

Algo assim:

while (!resul.equals(resultado));

! = Diferente, ou seja enquanto for diferente de true.

Lembrando que só validei o por que o seu while não executa, como não sei o que seu programa deveria fazer, não consigo dizer se o restante esta certo ou não… mas pela sua logica, me parece que vai executar infinitamente.

Criado 19 de novembro de 2018
Ultima resposta 19 de nov. de 2018
Respostas 1
Participantes 2