Ciao ragazzi!
Chiedo di scusarmi se avrò molti dubbi. Entro sul forum molto raramente. Il problema penso sia nel fatto che non riesco a risolvere certi problemi per alcuni motivi personali(come la cattiva concentrazione dovuta dall'ansia ... ecc), ma non sono stupido.
Mi sono preso un esercizio da fare oggi, ma non ci sono riuscito a risolverlo, per ottenere un risultato.
Ecco il problema:
Stampare i numeri pari da 1 a 100:
* usando l'istruzione while(){},
* usando l'istruzione do{}while(),
* usando il ciclo for.
La mia risoluzione:
codice:
package pari_1_100;
public class NumeriPari {
private int numero=0, numeriPari[];
final int pari = 50;
public NumeriPari(){
numeriPari = new int[pari];
}
public int[] StampaConWhile(){
int i = 0;
while(i<=pari){
numero=numero+2;
numeriPari[i] = numero;
i++;
}
return numeriPari;
}
public int[] StampaConDo_While(){
int i = 0;
do{
i++;
numero=numero+2;
numeriPari[i]=numero;
}while(i<=pari);
return numeriPari;
}
public int[] StampaConFor(){
for(int i = 0;i <= pari; i++){
numero=numero+2;
numeriPari[i]=numero;
}
return numeriPari;
}
}
codice:
package pari_1_100;
public class Main {
public static void main(String[] args) {
NumeriPari np = new NumeriPari();
System.out.println(np.StampaConWhile());
System.out.println(np.StampaConDo_While());
System.out.println(np.StampaConFor());
}
}
Il programma mi da errore di runtime, ed è questo:
codice:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 50
at pari_1_100.NumeriPari.StampaConFor(NumeriPari.java:35)
at pari_1_100.Main.main(Main.java:13)
Java Result: 1
Qualunque metodo io provassi, mi dà quel errore.
Vi chiedo di aiutarmi.
Per altro domani ho l'esame e non so cosa farò. Ci saranno dei problemi ancora più difficili di questo.
Ma a me dispiace per il fatto che io durante l'anno non sono riuscito a capire tutto. E comunque sento il bisogno di studiare, ma non ci riesco a capire anche delle cose banalissime.
Grazie a tutti in anticipo!