gpt4 book ai didi

java - Case 语句代码不显示在屏幕上,但符合且没有错误

转载 作者:行者123 更新时间:2023-12-02 02:34:21 25 4
gpt4 key购买 nike

我正在尝试让程序根据卡号的第一位在屏幕上打印卡类型。该程序可以正常编译并运行,但它不会将卡类型声明显示到屏幕上。我确信这只是一个简单的修复,但我花了几个小时试图发现它可能是什么。我在这里缺少什么?

public static void main (String [] args ) {


System.out.println ( "Please enter your credit card number without spaces." );
Scanner keyIn = new Scanner ( System.in );

long ccNum = keyIn.nextLong ();
String cNum = ccNum + "";


switch ( cNum.charAt ( 0 ) )
{
case 4:
System.out.println ( "The card is a Visa" );
break;

case 5:
System.out.println ( "The card is a MasterCard" );
break;

case 6:
System.out.println ( "The card is a Discover Card" );
break;

case 37:
System.out.println ( "The card is an American Express Card" );
break;
}
}

最佳答案

charAt 返回一个 char,您将其与其面值表示的 int 进行比较。即,您应该使用 '4''5,而不是 456 ''6'。另请注意,“37”是两个字符,因此您不能只评估第一个字符。相反,您可以使用 String.startsWith(String)以及一系列 if-else 条件:

if (cNum.startsWith("4")) {
System.out.println ( "The card is a Visa" );
} else if (cNum.startsWith("5")) {
System.out.println ( "The card is a MasterCard" );
} else if (cNum.startsWith("6")) {
System.out.println ( "The card is a Discover Card" );
} else if (cNum.startsWith("37")) {
System.out.println ( "The card is an American Express Card" );
}

关于java - Case 语句代码不显示在屏幕上,但符合且没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46617904/

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