Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]while, powiększanie liczby o dany procent
Forum PHP.pl > Forum > Przedszkole
ZaXaZ
Próbowałem tak ale EP nie powiększa się:

  1. <?php
  2. $Lvl = 0;
  3. $Exp = 10;
  4. $Procent = 6;
  5.  
  6. while($Lvl < 100)
  7. {
  8. $EP = $Exp + ($Procent/100*$Exp);
  9. echo 'LvL: '.++$Lvl.', Exp: '.$EP.'<br/>';
  10. }
  11. ?>


edit, pogooglowałem i znalazłem żeby dodać += zamiast =, jednak teraz zwiększa ale o stałą wartść (10,6) gdzie jest błąd?
kpt_lucek
  1. $EP = $Exp + ($Procent/100*$Exp);

i zobacz PRZED pętlą:
  1. $Exp = 10;
  2. $Procent = 6;
slash^
  1. $Lvl = 0;
  2. $Exp = 10;
  3. $Procent = 6;
  4.  
  5. while($Lvl < 100)
  6. {
  7. $EP = $Exp + ($Procent/100*$Exp*$Lvl);
  8. echo 'LvL: '.++$Lvl.', Exp: '.$EP.'<br/>';
  9. }
ZaXaZ
@kpt_lucek przecież to samo pisałem...
@slash^ dodaje stale o 0,6 zamiast o tyle % powiekszyc
Pyton_000
  1. $Lvl = 0;
  2. $Exp = 10;
  3. $Procent = 6;
  4.  
  5. while($Lvl < 100)
  6. {
  7. $Exp = round($Exp * (1 + ($Procent/100)), 2);
  8. echo 'LvL: '.++$Lvl.', Exp: '.$Exp.'<br/>';
  9. }
ZaXaZ
Chciałem rozbudować jeszcze żeby na podstawie kolejnej zmiennej - "EXP" wyświetlało jaki to poziom.

  1. <?php
  2. $Lvl = 0;
  3. $Exp = 10;
  4. $Procent = 7;
  5. $EXP = 234;
  6.  
  7. while($Lvl < 100)
  8. {
  9. $Exp = round($Exp*(1+($Procent/100)), 2);
  10. echo 'LvL: '.++$Lvl.', Exp: '.$Exp .'<br/>';
  11. if ($Exp>=$EXP){ $LEVEL = $Lvl; break;}
  12. }
  13.  
  14. echo 'Ep: '.$EXP.' = '.$LEVEL.'LvL';
  15. ?>


pętla się wykonuje jednak nie wyświetla poziomu.

Cytat
(...)
LvL: 46, Exp: 224.83
LvL: 47, Exp: 240.57
Ep: 234 = LvL
golabow
u mnie to działa.
Czemu używasz nowej zmiennej $LEVEL, jeżeli już na zmiennej $Lvl masz aktualny poziom?
Dotego warunek pod konieć pętli możesz dać do warunku while:
  1. <?php
  2. $Lvl = 0;
  3. $Exp = 10;
  4. $Procent = 7;
  5. $EXP = 234;
  6.  
  7. while( $Lvl < 100 && $Exp < $EXP )
  8. {
  9. $Exp = round($Exp*(1+($Procent/100)), 2);
  10. echo 'LvL: '.++$Lvl.', Exp: '.$Exp .'<br/>';
  11. }
  12.  
  13. echo 'Ep: '.$EXP.' = '.$Lvl.'LvL';
  14. ?>
ZaXaZ
Cytat(golabow @ 9.08.2014, 14:48:46 ) *
u mnie to działa.
Czemu używasz nowej zmiennej $LEVEL, jeżeli już na zmiennej $Lvl masz aktualny poziom?
Dotego warunek pod konieć pętli możesz dać do warunku while:
  1. <?php
  2. $Lvl = 0;
  3. $Exp = 10;
  4. $Procent = 7;
  5. $EXP = 234;
  6.  
  7. while( $Lvl < 100 && $Exp < $EXP )
  8. {
  9. $Exp = round($Exp*(1+($Procent/100)), 2);
  10. echo 'LvL: '.++$Lvl.', Exp: '.$Exp .'<br/>';
  11. }
  12.  
  13. echo 'Ep: '.$EXP.' = '.$Lvl.'LvL';
  14. ?>


Dzięki za ten post, mój kod nie wyświetlał przy drugim echo zmiennej Lvl, dlatego myslalem ze musze przypisac w petli nowa zmienna, ale twoj kod działa.
nospor
Nie uzywaj zmiennych, ktore nazywają się niemalze identycznie....
$Exp
$EXP
Sam sobie na wlasne życzenie robisz krzywde.
ZaXaZ
Cytat(nospor @ 9.08.2014, 14:57:00 ) *
Nie uzywaj zmiennych, ktore nazywają się niemalze identycznie....
$Exp
$EXP
Sam sobie na wlasne życzenie robisz krzywde.


wiem, wiem.. Ta zmienna jednak ma podobne znaczenie dla mnie i zaraz znika z kodu na zawsze bo miala byc tylko do testow.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.