Estou realizando os exercícios da apostila da caelum, e dentre eles tentei fazer o exercício pra exibir a série fibonacci utilizando só duas variáveis. Depois de queimar a mufa um pouco, busquei a seguinte solução na internet:
[code]int a = 1;
for (int i = 0; i <= 100;) {
System.out.print(i + " ");
i = i + a;
a = i - a;[/code]
Debugando, reparei que a linha 2 não é executada após a primeira passagem. Gostaria de entender o pq disso. Alguém poderia me dar uma luz por favor?
Tá faltando código não tem? a princípio este código irá executar infinitamente.
for(int i = 0; i < a; i < 100)
Isto é somente um exemplo de como usar o for. Agora é so pensar em como você montará o seu.
O motivo exato não sei dizer, mas o fato de não ter nenhum incremento dentro do for, é o inicio do pq debugando ele não passa mais pelo for após a primeira iteração.
[code]class MeuPrograma {
public static void main(String[] args) {
int a = 1;
for (int i = 0; i <= 100;) {
System.out.print(i + " ");
i = i + a;
a = i - a;
}
}
}[/code]
Esse é o código completo.
Então se eu não informar o incremento no for, a estrutura vai ser executada apenas uma vez?
não. Ele vai executar o for normalmente enquanto i for <= 100
Desculpa, então não entendi. O I vai continuar sendo <= 100 após a primeira execução. Não vejo pq ele não continua sendo executado.
o valor de ‘i’ esta sendo incrementado dentro do for
[code] class MeuPrograma {
public static void main(String[] args) {
int a = 1;
for (int i = 0; i <= 100;) {
System.out.print(i + " ");
i = i + a; // i incrementado
a = i - a;
}
}
} [/code]