【发布时间】:2021-02-20 04:24:45
【问题描述】:
我是从一个检查信用卡验证的程序中获取的。下面的代码放在另一个 if 语句中。尽管该语句为真,但它仍然输出为假。 validation 和 lastDigit 都是整数。
这是我的代码:
if (validation == lastDigit){
System.out.println("Check digit should be: " + validation);
System.out.println("Check digit is: " + lastDigit);
System.out.println("Number is valid.");
System.out.println();
}
else {
System.out.println("Check digit should be: " + validation);
System.out.println("Check digit is: " + lastDigit);
System.out.println("Number is not valid.");
System.out.println();
}
这是我的输出:
Enter a credit card number (enter a blank line to quit): 5457623898234113
Check digit should be: 3
Check digit is: 3
Number is not valid.
Enter a credit card number (enter a blank line to quit): 5555555555554445
Check digit should be: 4
Check digit is: 5
Number is not valid.
Enter a credit card number (enter a blank line to quit): 4012888888881881
Check digit should be: 1
Check digit is: 1
Number is not valid.
Enter a credit card number (enter a blank line to quit):
即使验证和lastDigit 确实彼此相等,就像第一个和第三个输入一样,它仍然执行为假。
我错过了什么吗?
【问题讨论】:
-
你应该提到更多代码,其中还提到了 lastDigit 和验证的数据类型
-
请附上minimal reproducible example。如果不太长,这可能是您的全部代码。
标签: java if-statement nested-if