gpt4 book ai didi

java - 输入一长串数字时不断出现错误

转载 作者:行者123 更新时间:2023-12-01 05:03:11 26 4
gpt4 key购买 nike

所以,我的程序应该采用 Visa 或 MasterCard 使用的 16 位数字的附加形式。但是,当我运行它时,程序将读取一个空格作为输入的结尾。例如:如果我输入 1234 5678 9012 3444,程序只会将我输入空格之前的数字相加。然后,如果我输入不带空格的整个字符串,它会不断给我错误代码。我在这里做错了什么?

import java.util.Scanner;

public class assignment4
{

public static void main(String[] args)
{
Scanner in = new Scanner(System.in);

int sum = 0, number, modulo;
String cardBrand;
System.out.print("Visa or MasterCard? ");
cardBrand = in.nextLine();

System.out.print("Please enter your 16 digit credit card number (no spaces): ");
number = in.nextInt();

while (number > 0)
{

int digit = number % 10;
sum = sum + digit;
number = number/10;

}

modulo = (sum % 10);

if (cardBrand.equals("Visa"))
{
if (modulo == 0)
{
System.out.println("This is a valid Visa card. Good job.");
}
else
{
System.out.println("This is an invalid Visa card number.");
}
}
else if (cardBrand.equals("MasterCard"))
{
if (modulo == 1)
{
System.out.println("This is a valid MasterCard.");
}
else
{
System.out.print("This is an invalid MasterCard card number.");
}
}

}

}

最佳答案

int 仅限于“2,147,483,647”,因此您的号码超出范围。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

使用BigDecimal如果你真的必须处理这么大的数字。

关于java - 输入一长串数字时不断出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com