Onde esta o erro?

Estou a fazer um programinha e imprima os multiplos de 7 menores de 200. O programa é compilado mas na hora da execução não tenho o resultado. Onde esotu a errar.

class Multiplos07
{
public static void main (String args[])
{
int cont;
int mult =0;
for (cont = 0; cont < 200; cont++);
{
if ((cont%7) ==0)
cont = cont + mult;
System.out.println("Os multiplos de 7 menores que 200 são: " + mult);
}
}
}

[quote=Lucas Chissola]Estou a fazer um programinha e imprima os multiplos de 7 menores de 200. O programa é compilado mas na hora da execução não tenho o resultado. Onde esotu a errar.
[/quote]

class Multiplos07 { public static void main (String args[]) { int cont; int mult =0; for (cont = 0; cont < 200; cont++); { if ((cont%7) ==0) cont = cont + mult; System.out.println("Os multiplos de 7 menores que 200 são: " + mult); } } }

Existem problemas de semântica e lógica no seu codigo, embora ele esteja sintaticamente correto e compile sem problemas.

Um problema de semântica é o seguinte: o ponto e virgula depois do for faz com que a JVM não execute nenhuma operação durante o loop, apenas o incremento do contador. Assim, o bloco demarcado entre chaves (linhas 8 a 12) não é executado a cada iteração mas sim após a finalização das 200 iterações, o que não é o comportamento desejado. Remova este ponto e vírgula para resolver o problema.

O segundo problema de semântica é a ausência de marcação de bloco após seu if. Se não houver marcação, apenas a instrução imediatamente seguinte (a soma dos valores) será executada caso a expressão seja avaliada como true. Se você deseja que a saída também esteja atrelada ao condicional, demarque ambas instruções entre chaves.

O problema de lógica é que mesmo executando o bloco em todas as iterações, você estaria somando a variável “mult” ao contador, mas o valor desta variável é sempre zero. Além disso, você está usando esta mesma variável na saída do seu programa. Mesmo sem os problemas semânticos, você teria a frase “Os multiplos de 7 menores que 200 são: 0” escrita 200 vezes.

Uma possível solução seria:

	public static void main (String args[]) {
		int cont;
		System.out.println("Os multiplos de 7 menores que 200 são: ");
		for (cont = 0; cont < 200; cont++) {
			if ((cont%7) ==0)
				System.out.print(cont+ " ");
		}
	}
} 

[]s
–mcbrain