Ciao ho un problemino sugli oparatori di incremento e di decremento.Questo è un esercizio che mi sono inventato di sana pianta..infatti non ha alcun senso logico...comunque il problema è:dato un array,composto dalle stringhe "E","S","O",stampa con il metodo adestra() le tre stringhe e con il metodo asinistra() la stringa "S" usando l'operatore di decremento.
La mia soluzione è:
codice:
class Provap{
String [] d={"E","S","O"};
String f="N";
int pos=0;
Provap(){
}
public String adestra(){
f=d[pos];
pos++;
return f;
}
public String asinistra(){
--pos;
f=d[pos];
return f;
}
public static void main(String[] args){
Provap p=new Provap();
System.out.println(p.adestra());
System.out.println(p.adestra());
System.out.println(p.adestra());
System.out.println(p.asinistra());
}
}
Il metodo a destra() viene tutto correttamente..il problema sta nel metodo asinistra() che stampa O,al posto di S.Invocando per 3 volte adestra() pos dovrebbe essere 2..quindi quando faccio --pos la posizione dell'array dovrebbe spostarsi ad 1.Perchè mi stampa O?