カード番号の最初の桁に基づいて画面にカードタイプを印刷するプログラムを取得しようとしています。プログラムはうまくコンパイルされ、実行されますが、カードタイプのステートメントは画面に表示されません。私はこれが単なる単純な修正だと確信していますが、私はそれが何であるかを発見しようと数時間を費やしました。私はここで何が欠けていますか?ケースステートメントコードは画面に表示されませんが、エラーなしで対応します
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;
}
}
を参照してくださいhttp://www.asciitable.com/何の手紙4、5、6および37のための:
switch文で溶液を見てみましょうあなたが望むものです。将来の問題:デバッグを学び、 'cNum'が何であるか、' cNum.charAt(0) 'が返すものを見てください。 – luk2302
この行は、longを文字列に変換するためのものです。 long ccNum = keyIn.nextLong(); 文字列cNum = ccNum + ""; –
これはうまくいかない理由はありますか? –