ROB BOWDEN: Szia, én vagyok Rob. És remélem, hogy fizetnie fel hitelt. Tehát az első dolog, amit tennie kell nem kérheti a hitelkártya számot a felhasználó. Itt, mi használ getLongLong. Ha volna is használják getString, de ebben az esetben, azt ellenőrizni kell , hogy nem volt a nem-numerikus karakterek a húr. Így fogjuk használni getLongLong. Ne feledje, hogy nem tudja használni valamit mint getInt, hiszen a szám lesz Túl nagy ahhoz, hogy beleférjen egy egész szám. Ha már ez a szám, akkor lásd itt, amíg hurkot. Tehát ez a while ciklus végrehajtása Luhn algoritmus, amit lásd a Pset spec. És ez valóban megy egy kicsit okos. Így a Pset spec, észreveheti, hogy Lépések és kettes külön. Először megy át a teljes hitelkártya számát, akik minden más karaktert kezdve a második utolsó karakter, és multiplikálni és hozzá az összes számjegy. Majd ezt követően, hogy hozzá az összes többi számjegy. Tehát ahelyett, hogy azokat két külön lépésben fogunk össze őket egy iteráció alatt teljes hitelkártya számát. Itt azt látjuk, int akt számjegy egyenlő hitelkártya száma, mod 10. Mi az a hitelkártya száma mod 10 csinálsz? Ez adja meg nekünk az utolsó számjegy az egész számot. Úgy emlékszem, hogy ha megosztott a number 10, majd a maradék lenne, amit az utolsó számjegy. 23 osztva 10, a fennmaradó 3 lesz. Tehát az utolsó számjegy, most itt látjuk, mi elágazó a mult 2. Szóval, mit fogunk használni mult 2 fővel van megkülönböztetve az egyik a "minden számban a második számjegy "számokat. Mult 2 fog indulni, mint hamis, mivel az utolsó számjegy ne figyelembe kell venni a a második az utolsó számjegyet. Így aztán a végén ez a for ciklus, akkor látni, hogy mi fog változni ez a false-ról true. A következő iteráció a for ciklus, ez meg fog venni igaz, amíg A végén, ha megváltoztatjuk azt true-ról false. Mert akkor mi lesz a harmadik, hogy utolsó szám, ami nem tartozik a számjegyek, hogy meg kell szorozni 2-vel. Tehát, ha történetesen egy ilyen számjegyek szeretnénk megszorozzuk 2, látjuk, mi hozzátéve, hogy a checksum. És itt, mi a hármas operátor egyszer ismét egy kicsit okos. Tehát, ha akt számjegy kevesebb, mint 5, akkor mi csak nem akt számjegy szer 2. Ez egyszerű. Ha ez 1, akkor szeretnénk hozzá 2. Ha ez 2, szeretnénk felvenni 4.. Ha ez 4, szeretnénk hozzáadni 8. Tehát mi különleges 5? Nos, 5-ször 2. 10. És ne feledjük a Pset spec hogy szeretnénk hozzáadni a számjegyek a szám 2-szer, és nem pedig szám szer 2 is. Tehát, ha az eredeti szám 7, 7-szer 2 14. Azt akarjuk, hogy adjunk hozzá 1 plusz 4 a szám, nem 14. Tehát itt, ha a szám nagyobb vagy 5, mit csinálunk az akt számjegy szer 2 mínusz 9. És ha belegondolunk, hogy a 5-ször 2 10. És így vagyunk hozzá 1, amely 10 mínusz 9. És 6-szor 2 12. Szóval hozzá 3, amely 12 mínusz 9. És ez működik az összes számot. Szóval, ez az, amit mi hozzá a mi checksum. És ez még az, ami kezelési lépés Két Luhn algoritmus, ami csak hozzátéve, a szám, ha ez nem történik meg , hogy az egyik a másik minden számjegy. Tehát, ha van, hogy ez tartja pálya az első két karakter a a hitelkártya számát, az első két számjegy, mert mi végül is lesz akar használni, hogy itt, hogy ellenőrizze, Rendben, a Visa el kell kezdenie ezzel, valamint egy American Express igényeket kezdeni ezzel, és így tovább. Végül, mi a hitelkártya száma egyenlő a hitelkártya száma osztva 10-zel. Miért tesszük ezt? Nos, mi csak kezelni az utolsó számjegyet. Elosztva 10 tolódik az egész szám vége. Tehát most, amikor loop back vagyunk lesz kezelni a a második az utolsó számjegyet. Aztán amikor elérünk ezt újra, megyünk hogy vágja le a második az utolsó számjegy, loop vissza, és kezelje a harmadik az utolsó számjegy, és így tovább, amíg a szám eléri a 0, ekkor hogy kitörjön a while ciklus. Mi is nyomon követhetőek a hitel kártya száma hossza, mivel ez Fontos különbséget tenni, hogy ez egy érvényes hitelkártya számát. Tehát most, ha egyszer már számított a ellenőrző, tudjuk meg, hogy ez érvényes kártyát. Az ellenőrző mod 10 része A Luhn algoritmus. Ha az ellenőrző mod 10 visszatér valami nem nulla, akkor ez vissza fog térni igaz, ebben az esetben, a szám kell, hogy legyen érvénytelen. Ellenkező esetben, ha a checksum mod 10 0, akkor folytatni tudjuk. Ez a nagy else if mondja, ha az első két számjegy egyenlő AMEX 1, hol itt, azt látjuk, hogy AMEX 1., mint egy a spec, 34. És mi is hasonlítani a 2 AMEX, ami 37. És a hitelkártya számát hossza egyenlő a várt American Express névjegykártya hossza, akkor mi is nyomtat American Express. Majd egy hasonló dolog a Visa. Az első két számjegy kell többnek lennie, vagy egyenlő, mint 40, vagy kisebb, vagy egyenlő, mint 49. Ezek jelentik érvényes Visa kártyákat. És a hossza egyenlő kell, hogy Visa hossza 1 vagy Visa Hossza 2. És így a hosszúnak kell lennie, vagy 13 vagy 16 számjegy hosszú. És végül a MasterCard, hogy ez hasonló a Visa, hogy az első két számjegy kell, hogy legyen egy bizonyos tartomány, és a hosszúság pontosan 16 számjegy. Tehát, ha minden ilyen esetben tart, majd Az első esetben, akkor nyomtasson AMEX. Ha ebben az esetben teljesül, akkor nyomtasson Visa. Ha ebben az esetben érvényes, fogunk nyomtat MasterCard. De ha egyik sem ezek tart, még akkor is ha a checksum érvényes volt, még nyomtatni érvénytelen. Mert ez nem egy az ilyen típusú kártyák. A nevem Rob, és remélem, találta hitel érdekes.