Visa veya MasterCard olup olmadığına bağlı olarak kredi kartı numarasını doğrulayan bir java programı oluşturmam gerekiyor. Kart numarasını her bir dört basamaklı (xxxx xxxx xxxx xxxx) arasındaki boşluklarla tek bir dize olarak okumam gerekiyor. 16 haneli olmalı. Sayıdaki tüm rakamlar toplam olmalıdır. Daha sonra, toplam% 10 = 0 ise geçerli bir Visa'dır. Toplam% 10 = 1 ise geçerli bir MasterCard'tır. Bu durumdan herhangi bir sapma geçersiz bir mesajla sonuçlanır.(Java) Sayıları tamsayılar halinde toplama ve bunları bir kredi kartı doğrulama algoritmasına uygulama konusunda yardıma ihtiyacınız var
Sorunum şu anki programımı çalıştırdığımda, sayıyı ve kart tipini girdiğimde programın durması ve devam etmemesidir. Burada ne yapıyorum emin değilim.
import java.util.Scanner;
public class Assignment4
{
public static void main (String[] args)
{
String cardNum;
String typeAnswer;
char cardType;
int testSum;
int modResult;
Scanner scan = new Scanner (System.in);
System.out.println("\t\t Credit Card Verification");
System.out.println("\t\t ========================");
System.out.println("Enter your card number <xxxx xxxx xxxx xxxx>: ");
cardNum = scan.nextLine();
if(cardNum.length()<19 || cardNum.length()>19)
{
System.out.println("Incorrect card number. Re-launch the program and enter a 16-digit card number");
System.exit(0);
}
else
{
System.out.println("Is your card Visa or MasterCard?");
typeAnswer = scan.next().toUpperCase();
cardType = answer.charAt(0);
String numSet1 = cardNum.substring(0,4);
String numSet2 = cardNum.substring(5,9);
String numSet3 = cardNum.substring(10,14);
String numSet4 = cardNum.substring(15,19);
int i = Integer.parseInt(numSet1);
int j = Integer.parseInt(numSet2);
int k = Integer.parseInt(numSet3);
int l = Integer.parseInt(numSet4);
int sum1=0;
while(i>0)
{
sum1 = sum1 + (i%10);
i = i/10;
}
int sum2 = 0;
while(j>0)
{
sum2 = sum2 + (j%10);
j = j/10;
}
int sum3 = 0;
while(k>0)
{
sum3 = sum3+ (k%10);
k = k/10;
}
int sum4 = 0;
while(l>0)
{
sum4 = sum4 + (l%10);
j = j/10;
}
testSum = sum1 + sum2 + sum3 + sum4;
modResult = testSum%10
if(modResult=0 && cardType=V)
{
System.out.println("Valid Visa card.");
}
else if (modResult=1 && cardType=M)
{
System.out.println("Valid MasterCard.");
}
else
{
System.out.println("Not a valid " + typeAnswer + " card. Re-launch and try again.");
}
}
}
}
Neden bu kod dünya üzerinde derleniyor? – MikeCAT