1 ciclos for, while e do...while em c/c++ existem 3 tipos diferentes de ciclos: while for...

5
1 Ciclos Ciclos for for , , while while e do...while e do...while Em C/C++ existem 3 tipos diferentes de ciclos: Em C/C++ existem 3 tipos diferentes de ciclos: while while for for equivalente a um while equivalente a um while do...while do...while O for e o while são equivalentes: O for e o while são equivalentes: for for while while for(int for(int i=0 ;i<10 ;++i){ i=0 ;i<10 ;++i){ …… …… . . } } int i=0 ; int i=0 ; while( i<10 ){ while( i<10 ){ …… …… . . ++i; ++i; } }

Upload: luan-santa

Post on 07-Apr-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Ciclos for, while e do...while Em C/C++ existem 3 tipos diferentes de ciclos:  while  for equivalente a um while  do...while O for e o while são equivalentes:

11

Ciclos Ciclos forfor, , whilewhile e do...while e do...while

Em C/C++ existem 3 tipos diferentes de ciclos:Em C/C++ existem 3 tipos diferentes de ciclos: whilewhile for for equivalente a um whileequivalente a um while do...whiledo...while

O for e o while são equivalentes:O for e o while são equivalentes:

forfor whilewhilefor(int i=0 ;i<10 ;++i){for(int i=0 ;i<10 ;++i){ …… ……..}}

int i=0 ;int i=0 ;while( i<10 ){while( i<10 ){ …… …….. ++i;++i;}}

Page 2: 1 Ciclos for, while e do...while Em C/C++ existem 3 tipos diferentes de ciclos:  while  for equivalente a um while  do...while O for e o while são equivalentes:

22

O ciclo do…while usa-se quando há necessidade de executar o ciclo O ciclo do…while usa-se quando há necessidade de executar o ciclo pelo menos uma vez : por exemplo menuspelo menos uma vez : por exemplo menus do {do { opcao=0;opcao=0; limpa_ecra();limpa_ecra();

/* /* Menu de opcoesMenu de opcoes*/ */ printf("Programa para calculo da trajectoria de um pendulo\n");printf("Programa para calculo da trajectoria de um pendulo\n"); printf("pelo metodo de Euler-Cromer.\n\n");printf("pelo metodo de Euler-Cromer.\n\n"); printf("(Resultados da execucao no ficheiro %s)\n\n", \ printf("(Resultados da execucao no ficheiro %s)\n\n", \ dados_iniciais.nome);dados_iniciais.nome); printf("Escolha uma opcao:\n\n\n");printf("Escolha uma opcao:\n\n\n"); printf(" 1 - Usar valores iniciais pre-definidos:\n");printf(" 1 - Usar valores iniciais pre-definidos:\n"); printf(" m=0.05 Kg, l=0.30 m, theta=0.1 rad,\n");printf(" m=0.05 Kg, l=0.30 m, theta=0.1 rad,\n"); printf(" vel.= 0 rad/s, 500 pontos de solucao;\n");printf(" vel.= 0 rad/s, 500 pontos de solucao;\n"); printf(" 2 - Definir valores;\n");printf(" 2 - Definir valores;\n"); printf(" 3 - Executar o calculo com os valores \ printf(" 3 - Executar o calculo com os valores \ definidos na opcao 2;\n");definidos na opcao 2;\n"); printf(" 4 - Sair do programa.\n\n");printf(" 4 - Sair do programa.\n\n"); printf("Opcao: (valor por defeito: 1) ");printf("Opcao: (valor por defeito: 1) "); ................ while ( opcao != 4 && opcao != 1 );while ( opcao != 4 && opcao != 1 );

Repare-se que aqui o while termina com ;Repare-se que aqui o while termina com ;

Ciclos Ciclos forfor, , whilewhile e do...while e do...while

Page 3: 1 Ciclos for, while e do...while Em C/C++ existem 3 tipos diferentes de ciclos:  while  for equivalente a um while  do...while O for e o while são equivalentes:

33

Em C/C++ falso Em C/C++ falso 0, verdade é não nulo 0, verdade é não nulowhile(1){while(1){ … …..}}

Produz um ciclo infinito que tem de ser terminado de outra Produz um ciclo infinito que tem de ser terminado de outra forma. Idem paraforma. Idem para

for( ; 1 ; ){for( ; 1 ; ){……....}}

Nesse caso termina-se com Nesse caso termina-se com breakbreak

Ciclos Ciclos forfor, , whilewhile e do...while e do...while

Page 4: 1 Ciclos for, while e do...while Em C/C++ existem 3 tipos diferentes de ciclos:  while  for equivalente a um while  do...while O for e o while são equivalentes:

44

Erro comum: incluir ; como por exemplo emErro comum: incluir ; como por exemplo emwhile(1)while(1); ; {{ … …..}}

O ; é a chamada instrução vazia: O ; é a chamada instrução vazia: o ciclo é o ciclo é verdadeiramente infinito!verdadeiramente infinito!

Ciclos Ciclos forfor, , whilewhile e do...while e do...while

Page 5: 1 Ciclos for, while e do...while Em C/C++ existem 3 tipos diferentes de ciclos:  while  for equivalente a um while  do...while O for e o while são equivalentes:

55

Instruções condicionaisInstruções condicionais

Controlo de um ciclo:Controlo de um ciclo:

breakbreak continuecontinue#include <stdio.h>#include <stdio.h>#include <math.h>#include <math.h>

int main(){int main(){ int i=4, j=100;int i=4, j=100;

while( abs(i) <=4 ){while( abs(i) <=4 ){ if( i == 0 ) break;if( i == 0 ) break; printf("i= %d, %d/%d= %d\n", i, j, i, j/i);printf("i= %d, %d/%d= %d\n", i, j, i, j/i); --i;--i; }} return 0;return 0;}}

#include <stdio.h>#include <stdio.h>#include <math.h>#include <math.h>

int main(){int main(){ int i=4, j=100;int i=4, j=100;

while( abs(i) <=4 ){while( abs(i) <=4 ){ --i;--i; if( i == 0 ) continue;if( i == 0 ) continue; printf("i= %d, %d/%d= %d\n", i, j, i, j/i);printf("i= %d, %d/%d= %d\n", i, j, i, j/i); }} return 0;return 0;}}

breakbreak continuecontinuei= 4, 100/4= 25i= 4, 100/4= 25i= 3, 100/3= 33i= 3, 100/3= 33i= 2, 100/2= 50i= 2, 100/2= 50i= 1, 100/1= 100i= 1, 100/1= 100

i= 3, 100/3= 33i= 3, 100/3= 33i= 2, 100/2= 50i= 2, 100/2= 50i= 1, 100/1= 100i= 1, 100/1= 100i= -1, 100/-1= -100i= -1, 100/-1= -100i= -2, 100/-2= -50i= -2, 100/-2= -50i= -3, 100/-3= -33i= -3, 100/-3= -33i= -4, 100/-4= -25i= -4, 100/-4= -25i= -5, 100/-5= -20i= -5, 100/-5= -20