ROB BOWDEN: Ciao, sono Rob. E spero che tu stia addebitato up per il credito. Quindi prima cosa che dobbiamo fare è richiesta la carta di credito numero dall'utente. Qui, stiamo usando getLongLong. Si potrebbe avere anche usato getString, ma in questo caso, avresti bisogno di controllare che non c'erano non numerico caratteri della stringa. Così useremo getLongLong. Ricordate che non è possibile utilizzare qualcosa come getInt, dal momento che il numero sarà troppo grande per stare in un numero intero. Una volta che abbiamo quel numero, ci vedi qui ciclo while. Quindi questo ciclo while sta attuando L'algoritmo di Luhn che si vedere le specifiche pset. E sta realmente succedendo ad essere un po 'intelligente. Così nella specifica pset, notare che Passaggi uno e due sono separati. Per prima cosa andiamo su tutta la carta di credito numero, alla ricerca di ogni altro carattere a partire dal secondo al ultimo carattere, e moltiplicandoli e aggiungendo tutte le cifre. Poi, dopo che, aggiungiamo in tutte le altre cifre. Così, invece di fare quelle due fasi distinte, stiamo andando a combinare li in una iterazione sulla numero di carta di credito. Qui, vediamo int uguali cifre CUR numero di carta di credito, mod 10. Qual è il numero di carta di credito mod 10 facendo? Ci sta dando l'ultima cifra in numero intero. Quindi ricorda che se abbiamo diviso il numerare da 10, poi il resto sarebbe tutto ciò che l'ultima cifra è. 23 diviso 10, il resto sarà 3. Così l'ultima cifra, ora qui, vediamo stiamo ramificazione sul mult da 2. Quindi ciò che andremo a utilizzare mult per 2 per sta differenziando tra uno dei "ogni altri numeri da Il secondo "numeri a due cifre. Mult da 2 sta per iniziare come falso, dal momento che l'ultima cifra non dovrebbe essere considerato dal secondo per ultima cifra. Allora alla fine di questo ciclo for, abbiamo vediamo che stiamo andando a modificare questa da false a true. Nella successiva iterazione del ciclo, sta andando a considerare vero fino Alla fine, quando cambiamo da true a false. Perché allora saremo sul terzo ultima cifra, che non è uno dei cifre che dobbiamo moltiplicare per 2. Quindi, se ci capita di essere in una di quelle cifre che vogliamo moltiplicare per 2, vediamo stiamo aggiungendo alla nostra checksum. E qui, stiamo usando la operatore ternario di una volta ancora una volta essere un po 'intelligente. Quindi, se cur cifra è inferiore a 5, quindi possiamo solo fare volte cifra CUR 2. Questo è semplice. Se è 1, allora vogliamo aggiungere 2. Se è 2, vogliamo aggiungere 4. Se è 4, vogliamo aggiungere 8. Allora, cosa c'è di speciale 5? Beh, 5 volte 2 è 10. E ricordate dalla specifica pset che vogliamo aggiungere le cifre del volte numero 2 e non il numero di volte 2 stesso. Quindi se il numero originale è 7, 7 volte 2 è 14. Vogliamo aggiungere 1 più 4 al numero, non 14. Così qui, se il numero è 5 o maggiore, quello che stiamo facendo è cifra attuale 2 volte meno 9. E se si pensa che, 5 volte 2 è 10. E così stiamo aggiungendo 1, che è 10 meno 9. E 6 volte 2 è 12. Quindi stiamo aggiungendo 3, che 12 è meno 9. E che funziona per tutti i numeri. Ed è quello che stiamo aggiungendo alla nostra checksum. Ed il resto è quello che sta Passo movimentazione Due di algoritmo di Luhn, che è appena aggiungendo la cifra se non accade essere una delle ogni altre cifre. Quindi, una volta che abbiamo questo, questo è mantenere registra i primi due caratteri il numero della carta di credito, i primi due cifre, dal momento che stiamo finalmente andando a voler usare quella qui a verificare, tutto bene, un visto deve iniziare con questo, e una necessità American Express iniziare con questo, e così via. Infine, facciamo la carta di credito numero uguale di carta di credito numero diviso per 10. Perché lo facciamo? Beh, abbiamo appena gestito l'ultima cifra. Dividendo per 10 si sposterà l'intero numero sopra. Così ora quando ci loop back, siamo andando a gestire la secondo per ultima cifra. Poi, quando ci ha colpito di nuovo, stiamo andando tagliare il penultimo cifre, indietro loop, e gestire il terzo per durare cifre, e così via, fino alla numero raggiunge 0, a questo punto rompiamo fuori dal ciclo while. Stiamo anche tenere traccia del credito lunghezza del numero della carta, dato che è importante distinguere se è un numero di carta di credito valida. Così ora, una volta che abbiamo calcolato la checksum, siamo in grado di determinare se è una tessera valida. Il mod checksum 10 è parte dell'algoritmo di Luhn. Se checksum mod 10 rendimenti qualcosa non-zero, allora questo restituirà true, in tal caso, il numero deve essere valido. Altrimenti, se checksum mod 10 è 0, allora possiamo continuare. Questo grande else if sta dicendo, se il primo due cifre sono uguali a AMEX 1, dove fino qui, vediamo che AMEX 1, come da specifiche, è 34. E ci confronteremo anche per AMEX 2, che è 37. E il numero di lunghezza carta di credito è pari al previsto American Express lunghezza della carta, allora possiamo stampare American Express. Faremo una cosa simile con Visa. Le prime due cifre devono essere maggiori o uguale a 40, o meno o uguale a 49. Coloro che rappresentano carte Visa valide. E la lunghezza deve essere uguale a Visa Lunghezza 1 o Visa Lunghezza 2. E così la lunghezza deve essere 13 o 16 cifre lunga. E infine con MasterCard, è simile a Visa, che i primi due cifre devono essere in un certo gamma, e il mosto lunghezza essere esattamente 16 cifre. Quindi, se uno qualsiasi di questi casi tenere, poi in nel primo caso, noi lo stamperemo AMEX. In questo caso vale, noi lo stamperemo Visa. In questo caso vale, faremo stampare MasterCard. Ma se nessuno di coloro che detengono, anche se il checksum era valido, abbiamo ancora stampiamo valido. Perché non è una delle questi tipi di carte. Il mio nome è Rob, e spero trovato interessante credito.