这个算是比较有意思的一道题。适合学习类和方法的初学者练习。
要验证卡号的合理性,根据条件可以先列出几个层次,再着手敲代码,会使条理比较清晰。
(1)根据 个返回值的真假判断卡号是否合理
- 判断卡号的位数是否合理(用布尔)并返回一个值(假定judge1)
- 判断卡号的开头是否合理(用布尔)并返回一个值(假定judge2)
- 判断end1和end2的值能否被10整除并返回一个布尔值(judge3)
- 从十位起每隔一位得到一个数字并将此数字作为参数放入Ⅰ中,并将Ⅰ中所得返回值加在一起,得到返回值end1;
- 将卡号从左到右的奇数位所有数字相加,所得返回值为end2;
(Ⅰ)将得到的实参*2,如果大于9则结果=(结果%10+1),再返回。
现在我们可以根据上面的逻辑写出七个函数,并且所有方法都包含在第一个方法中(有的为间接调用),构造函数与设定初始值的函数不再说明。
下面为实际代码:
主类代码:
public class reditCard {
long cardword;
reditCard(){}
public void setCard(long a)
{
cardword=a;
}
public boolean isValid()
{
boolean prefix=prefixMatched();
boolean theSize=Size(