login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Even of oneven

Offline bennieboy - 22/08/2006 19:02
Avatar van bennieboyHTML beginner Hoe kan je in php kijken of een getal al dan niet even is?

6 antwoorden

Gesponsorde links
Offline MothZone - 22/08/2006 19:03
Avatar van MothZone PHP ver gevorderde
  1. <?php
  2. if($i % 2 == 0)
  3. //even
  4. else
  5. //oneven
  6. ?>
Offline MindPrison - 22/08/2006 19:05 (laatste wijziging 22/08/2006 19:05)
Avatar van MindPrison PHP gevorderde Dit zou het moeten doen:

  1. <?php
  2. // Het getal zit in $i
  3. if(($i / 2) == floor($i / 2))
  4. // Even
  5. else
  6. // Oneven
  7. ?>


Edit: dat hierboven is zelfs nog beter 
Offline Richard - 22/08/2006 19:05 (laatste wijziging 22/08/2006 19:06)
Avatar van Richard Crew algemeen Wat dacht je van:

  1. <?php
  2. if ($i & 1)
  3. {
  4. // even
  5. }
  6. ?>


Een bitwise vergelijking is sneller dan modulo;-)

EDIT: Nog maar een manier;-)
  1. <?php
  2. if ((int)$i == $i)
  3. {
  4. // even
  5. }
  6. ?>
Offline Riny - 22/08/2006 22:53
Avatar van Riny Nieuw lid @JeXuS:

Jouw 2 manieren werken niet goed (of doe ik het verkeerd?)

  1. <?php
  2.  
  3. $i = 2;
  4.  
  5. /* Eerste methode */
  6. if ( $i % 2 == 0 )
  7. echo 'Even.<br />';
  8. else
  9. echo 'Oneven.<br />';
  10.  
  11. /* Tweede methode */
  12. if ( ( $i / 2 ) == floor ( $i / 2 ) )
  13. echo 'Even.<br />';
  14. else
  15. echo 'Oneven.<br />';
  16.  
  17. /* Derde Methode */
  18. if ( $i & 1 )
  19. echo 'Even.<br />';
  20. else
  21. echo 'Oneven.<br />';
  22.  
  23. /* Vierde Methode */
  24. if ((int)$i == $i)
  25. echo 'Even.<br />';
  26. else
  27. echo 'Oneven.<br />';


Deze code heb ik..

Wanneer ik een 2 invul bij $i krijg ik:

Even.
Even.
Oneven.
Even.

En wanneer ik een 3 invul bij $i krijg ik:

Oneven.
Oneven.
Even.
Even.

Dus die van jou werken niet echt 
Offline Tri - 23/08/2006 05:18 (laatste wijziging 23/08/2006 05:19)
Avatar van Tri PHP interesse Een bitwise operatie is wel het snelst, maar dan moet je wel de goede code hebben ;)
  1. <?php
  2. $i = 6;
  3. if ($i>>1<<1 == $i) {
  4. print 'even';
  5. }
  6. else {
  7. print 'oneven';
  8. }
  9. ?>
Offline Richard - 23/08/2006 09:03
Avatar van Richard Crew algemeen Err ja, ik heb dus blijkbaar precies het omgekeerde gedaan^^ Maar het kan ook zo:

  1. <?php
  2. if (~$i & 1)
  3. {
  4. // even
  5. }
  6. ?>


de allereerste bit (de 1 bit) zegt of een getal oneven is, niet even, dus moet je eerst in $i de bits omdraaien;-)

En die 2e methode mag je door de plee spoelen:p
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.325s