Bucles WHILE
Prova això:
public static void main(String[] args) {
// 1. declarar i establir variables
int comptador = 1;
// 2. ara fer el bucle while
while (comptador <5){
System.out.println("Comptador és igual a " + comptador);
// 3. afegir 1 al valor de comptador
comptador = comptador + 1;
}
// 4. el bucle while ha acabat,
// Per tant, el programa continua
System.out.println("Adéu");
}
Al executar el programa, s'ha d'haver imprès:
Comptador és igual a 1
Comptador és igual a 2
Comptador és igual a 3
Comptador és igual a 4
Adéu
Cal notar que el bucle “While” es repetirà sempre que la declaració dins del parèntesi sigui veritat. Si la declaració és falsa (comptador = 5 o superior), el bucle s'atura i continua amb la resta del codi (imprimeix la paraula “Adéu”).
A més, la variable comptador augmenta una unitat cada volta. Això és necessari per no crear un bucle infinit i que arribi un moment en que la condició sigui falsa.
Exercicis:
1. Escriu el següent codi, executa'l i digues quina és la seva sortida. Què passaria si comentàssim la línia x = x + 1;?
public static void main(String[] args) {
int x = 0;
while(x < 5){
System.out.println("x = " + x);
x = x + 1;
}
}
2. Corregeix els errors en aquest codi:
public static void main(String[] args) {
count = 0;
while (Count <8){
System.out.printline();("Count és igual a" comptar);
}
Bucles do .. while
Els bucles do...while són similars als bucles while, excepte que la condició es comprova després d'executar el codi intern. Això provoca que el codi s'executa al menys una vegada.
A la majoria dels casos, els bucles while seran més convenients.
L'estructura general d'un do..while és la següent:
public static void main(String[] args) {
// 1. declarar i establir variables
int i = 10;
System.out.println("Counting Down ..");
// 2. s'inicialitza el bucle do..while
do{
System.out.println("..." + i);
i = i - 1;
}
// 3. es comprova la condició boobleana
while (i > 1);
System.out.println("Boom!!");
}
Exercicis:
1. Què penses que s'obté amb el codi anterior?
2. Quin és el resultat del codi següent?
int comptador = 10;
while (comptador > 1){
System.out.println("" + comptador +
" ampolles verdes penjant a la paret");
System.out.println("" + comptador +
" ampolles verdes penjant a la paret");
System.out.println("I si una ampolla verda accidentalment caigués,");
System.out.println("Hi hauria " + (comptador - 1) +
" ampolles verdes penjant a la paret.");
comptador = comptador - 1;
}
3. En un bucle do...while, quan es comprova la declaració booleana?
4. Imprimir el conjunt de nombres parells 20 a 30.
5. Imprimiu els números entre 27 i 35.
Bucles for
Els bucles "for" de Java s'expressen d'una manera molt més compacta, ja que la inicialització del comptador, ajustament de la condició booleana, i l'increment del comptador, es fa tot en un mateix parèntesi.
Nota: Abans de seguir endavant hem d'aprendre què són els operadors increment i decrement:
Operador increment: x ++; és el mateix que x = x + 1; (augmenta el valor en 1).
Operador decrement: x --; és el mateix que x = x – 1; (disminueix el valor en 1).
Així, tornant a lo anterior, un bucle "for" estableix totes les condicions dins dels parèntesis després de la sentència for.
for (inicialitza comptador; condició booleana, iteració) {
// Codi a repetir.
}
Exemples:
for (int x = 0; x < 10; x++){
System.out.println("x =" + x);
}
for (int x = 10; x > 0; x--){
System.out.println("x =" + x);
}
Cal notar que que en aquest bucle es poden declarar i inicialitzar les variables dins del parèntesi.
A més, al bucle for el nombre de vegades que es repetirà el bucle queda fixat des del començament, mentre que als altres, el bucle es repeteix sempre que es compleixi alguna condició declarada que no té perquè ser fixa (el nombre d'iteracions pot variar).
Exercicis:
1. Escriu una classe que sumi els nombres de 1 fins a 1000.
2. Escriu una classe que sumi els parells de 1 fins a 1000.