name: portada class: portada-slide, center, middle # Estructures iteratíves .footnote[Joan Puigcerver Ibáñez] --- layout: true class: regular-slide .right[.logo[]] --- # Introducció - Intenta fer un programa que 1. Printi per pantalla _12345...20_ 2. Printi per pantalla _12345...100000_
--- # Estructures iteratíves Necessitem poder repetir passos d'un camí
graph LR initI[contador = 0] --> if{contador <= 100000} if-->|false|finalitzar[finalitzar] if-->|true|printValue[imprimir contador] printValue-->increase[contador++] increase-->if
--- # Estructures iteratíves ```pseudocode int contador = 0 mentre(contador <= 100000) imprimir contador contador++ ``` --- # Estructures iteratíves Java ## While ```java while(condition){ // S'executa mentre la condició és true } ``` ``` // print 0 1 2 int i = 0; while(i<3){ System.out.println(i); i++; } ``` --- # Estructures iteratíves Java ## For ``` for (initialization; termination; increment) { // codi a executar } ``` // print 0 1 2 ``` for (int i=0; i<3; ++i) { System.out.println(i); } ``` --- # While vs For - El for és força més descriptiu. - While és més versatil. --- # Estructures iteratíves Java ## Do While ```java do { // S'executa un cop i és repeteix mentre la condició és true } while(condition) ``` ``` // print 0 1 2 int i = 0; do { System.out.println(i); i++; } while(i<3) ``` --- # While vs Do While - Per defecte usarem la versió while - En alguns casos ens interessa que sempre passi minim una vegada pel bucle - Demana un enter a l'usuari que sigui menor de 10. Si es major, torna'l a demanar. --- # Bucle infinit Bucle que es repeteix de forma indefinida. ``` while(true){ System.out.println("Bucle infinit"); } ``` ``` int i = 0; while(i<10){ System.out.println("Bucle infinit"); } ``` --- # Branching Statements Intrucció que fan _salts_ en l'execució. - break - continue - return --- # Break Surt del bucle actual ``` while(condition){ if(condition2) break; } ``` --- # Continue Torna a l'inici del bucle ``` while(condition){ if(condition2) continue; } ``` --- # Return Retorna el resultat d'una funció, però també surt de tots els bucles. ``` while(condition){ if(condition2) return; } ```