ROB BOWDEN: Sveiki, es esmu Rob. Un es ceru, ka jums jāmaksā up kredītu. Tātad pirmā lieta, kas mums jādara ir pieprasīt kredītkarti numuru no lietotāja. Lūk, mēs izmantojam getLongLong. Jūs varētu izmantot arī getString, bet tādā gadījumā, jūs nepieciešams, lai pārbaudītu ka nebija ne-ciparu rakstzīmes virknē. Tāpēc mēs izmantosim getLongLong. Atcerieties, ka jūs nevarat izmantot kaut ko piemēram getInt, jo skaitu būs pārāk liels, lai ietilptu veselam skaitlim. Pēc tam, kad mēs esam šo numuru, mēs skatiet šeit to, kamēr cilpa. Tātad šis kamēr cilpa īsteno Luhn algoritms, kas jums redzēt PSET spec. Un tas tiešām notiek būt mazliet gudrs. Tātad PSET spec, ievērosiet, ka Soļi pirmās un otrās ir atsevišķi. Mēs vispirms iet pāri visam kredītkarti numuru, meklējot katru otro raksturu, sākot no otrā līdz pēdējā raksturs, un reizinot tos un pievienojot visus ciparus. Tad pēc tam mēs pievienot visiem citiem cipariem. Tā vietā, lai darīt tiem divos atsevišķi soļi, mēs ejam, lai apvienotu tos vienā atkārtojumā vairāk Visa kredītkartes numuru. Šeit mēs redzam, int cur ciparu vienāds kredītkartes numurs, mod 10. Kas ir kredītkartes numurs mod 10 dara? Tas dod mums pēdējo ciparu in vesels skaitlis. Tātad, atcerieties, ka, ja mēs sadalīta numuru uz augšu par 10, tad atlikušais varētu būt kāds, kas pēdējais cipars ir. 23 dalīts ar 10, pārējais būs 3. Tātad pēdējais cipars, tagad šeit mēs redzam mēs esam filiāles uz mult ar 2. Tātad, ko mēs gribam būt, izmantojot mult ar 2, lai ir arī nošķirt viens no "katru otro numuru no otrais cipars "numurus. Mult ar 2 gatavojas sākt no kā nepatiesa, jo pēdējais cipars nevajadzētu var uzskatīt no otrā līdz pēdējai zīmei. Tātad beigās šis cilpas, mēs redz, ka mēs ejam to mainīt no viltus patiesai. Par nākamo atkārtojuma par cilpas, tas būs uzskatīt taisnība līdz brīdim, beigās, kad mēs mainīt to no taisnība nepatiess. Jo tad mēs būsim uz trešā līdz Pēdējā zīme, kas nav viens no cipari, ka mums vajadzētu reizināt ar 2. Tātad, ja mēs notikt būt par vienu no tiem cipari, ko mēs vēlamies, lai reizināt ar 2, mēs redzam, mēs esam pievienojot mūsu kontrolsumma. Un šeit mēs esam, izmantojot trīskāršo operators vienreiz atkal mazliet gudrs. Tātad, ja cur ciparu ir mazāks par 5, tad mēs varam tikai izdarīt ar pašreizējo ciparu reizes 2. Tas ir vienkārši. Ja tas ir 1, tad mēs vēlamies, lai pievienotu 2. Ja tas ir 2, mēs vēlamies, lai pievienotu 4. Ja tas ir 4, mēs vēlamies, lai pievienotu 8. Tātad, kas ir īpašs par 5? Nu, 5 reizes 2 ir 10. Un atcerieties, no PSET spec ka mēs vēlamies, lai pievienotu ciparus numurs reizes 2, un nevis numurs reizes 2 pati. Tātad, ja sākotnējais numurs ir 7, 7 reizes 2 ir 14. Mēs vēlamies, lai pievienotu 1 plus 4 skaitam, kas nav 14. Tātad, šeit, ja numurs ir 5 vai lielāks, tas, ko mēs darām, ir cur ciparu reizes 2 mīnus 9. Un, ja jūs domājat par to, ka, 5 reizes 2 ir 10. Un tāpēc mēs esam pievienojot 1, kas ir 10 mīnus 9. Un 6 reizes 2 ir 12. Tāpēc mēs esam pievienojot 3, kas ir 12 mīnus 9. Un tas darbojas visās numuriem. Tāpēc, ka tas, ko mēs esam pievienojot mūsu kontrolsumma. Un tas vēl ir, kas ir apstrādes solis Divi no Luhn algoritms, kas ir tikai pievienojot ciparu, ja tas nenotiek ir viens no katriem citiem cipariem. Tātad, kad mums ir, ka tas ir tur dziesmu no pirmajiem diviem burtiem kredītkartes numuru, pirmie divi cipari, jo mēs galu galā iet vēlas izmantot, ka šeit lejā, lai pārbaudītu, labi, Visa ir jāsāk ar šo, un American Express vajadzībām sākt ar to, un tā tālāk. Visbeidzot, mēs kredītkarti skaits ir vienāds ar kredītkarti numurs, dalīts ar 10. Kāpēc mēs to darām? Nu, mēs vienkārši apstrādā pēdējo ciparu. Dalot ar 10 mainīs visu numuru pāri. Tāpēc tagad, kad mēs cilpa atpakaļ, mēs esam tiks apstrādes otrā līdz pēdējai zīmei. Tad, kad mēs hit to vēlreiz, mēs ejam lai nogrieztu otro ilgs ciparu, cilpa atpakaļ, un rīkoties trešais uz pēdējo ciparu, un tā tālāk, līdz brīdim, kad skaits sasniedz 0, kurā brīdī mēs izkļūt no kamēr cilpa. Mēs arī sekotu kredīta kartes numurs garums, jo tas ir svarīgi atšķirt, vai tas ir derīga kredītkartes numuru. Tāpēc tagad, kad mēs esam aprēķina kontrolsummu, mēs varam noteikt, vai tā ir derīga karte. Kontrolsumma mod 10 ir daļa gada Luhn algoritms. Ja kontrolsumma mod 10 atgriežas kaut nav nulle, tad tas return true, un šādā gadījumā numurs ir nederīgs. Pretējā gadījumā, ja kontrolsumma mod 10 ir 0, tad mēs varam turpināt. Šo lielo cits ja saka, ja pirmais divi cipari ir vienāds ar AMEX 1, kur šeit, mēs redzam, ka AMEX 1, kā vienu spec, ir 34. Un mēs arī salīdzināt to līdz AMEX 2, kas ir 37. Un kredītkartes numurs garums vienāds ar paredzamo American Express card garuma, tad mēs varam drukāt American Express. Mēs darīsim līdzīga lieta ar Visa. Pirmie divi cipari ir jābūt lielākam par vai vienāds ar 40, vai mazāk par vai vienāds ar 49. Tie pārstāv derīga vīza kartes. Un tās garums ir vienāds ar Visa Garums 1 vai Visa Garums 2. Un tā garumam jābūt vai nu 13 vai 16 cipariem. Un, visbeidzot, ar MasterCard, tas ir līdzīgi Visa, ka pirmie divi cipari nepieciešams būt pārliecināti, diapazona, un garums must jābūt tieši 16 cipariem. Tātad, ja kāds no šiem gadījumiem turēt, tad Pirmajā gadījumā mēs drukāt AMEX. Ja šo lietu tur, mēs drukāt vīzu. Ja šo lietu tur, mēs drukāt MasterCard. Bet, ja neviens no tiem tur, pat ja kontrolsumma bija spēkā, mēs joprojām drukāt nederīgs. Tāpēc, ka tas nav viens no šie karšu veidiem. Mans vārds ir Rob, un es ceru, ka jūs konstatēts kredītu interesanti.