Estou com uma duvida no laço for , uma vez q o loop eh executado ‘x’ decrementa, o valor de ‘x’ entao eh atribuido a variavel ‘i’ porem ‘i’ continua a valer 5 ateh o fim, nao era pra ele ir decrementando junto com o ‘x’?
Considere como valor de entrada o numero 5 ae.
importjava.io.*;classFAT{publicstaticvoidmain(Stringargs[])throwsException{BufferedReaderl=newBufferedReader(newInputStreamReader(System.in));Stringt;intz=1,x;//Um detalhe que eu vi aqui , por que você não usou o método l.read(); (Já da uma saida do tipo int)t=l.readLine();x=Integer.parseInt(t);//Usando o l.read(); , você não precisará fazer o casting de String para int, mas tera que criar a variavel como int.for(inti=x;x>0;x--){z=z*x;System.out.println("Z:"+z+"\nX:"+x+"\nI:"+i+"\nT:"+t);i--;//Ficou faltando apenas esta linha para o decremento ser feito//O decremento estava sendo feito apenas no x(dentro do for) }}}
ViniGodoy
O primeiro "pedaço" do comando for é a inicialização. Ela só é executada uma vez.
Portanto, por mais que ali vc faça int i = x, esse comando só rodará uma vez, antes do primeiro laço.
Se você quer que essa atribução ocorra toda vez, terá que coloca-la na terceira parte do for também:
for(inti=x;x>0;i = --x){
T
tilopolis
olha soh o do ‘for’ nem sabia, pensei q era executado toda hora
qto ao l.read - ele le um int direto ?
como uso ele
agora se eu entro com valor 5 ele me retorna 16 e vai diminuindo…horrivel ehehe