Ad esempio grazie a queste linee non esci mai dal for
dopo tot iterazioni arrivi al punto che y=array.length-1 e z=array.length-1. Grazie a z++, z diventa array.length e di conseguenza, essendo array.length-1<array.length=z, z prende il valore 0 e la guardia del ciclo for non viene mai violata. Continua a ciclare su z, ma appena arriva a array.length-1, si azzera e quindi va in loop infinito. Non ho letto il codice attentamente, ma basta entrare nel for successivo, solo se l'indice del for attuale e diverso dagli indici dei for precedenti. (Eheh, detto cosi' sembra un casino, ma guarda l'esempio sotto che vale piu' di mille parole).codice:if(z==y || z==i) { do { z++; if(array.length-1<z) z=0;
codice://faccio quello che devo fare e arrivo al momento in cui ho la parola char[] out; for(int i=0; i<parola.length(); i++) { for(int j=0; j<parola.length(); j++) { if(j!=i) { for(int z=0; z<parola.length(); z++) { if(z!=i && z!=j) { out = new char[]{parola.charAt(i),parola.charAt(j),parola.charAt(z)}; System.out.println(out); } } } } } //Resto della classe

Rispondi quotando