我必须为10位数的isbn数字返回一个校验位,并且在我将9位数字修改为11之后它应返回0,X或余数。我的程序总是返回0并且我无法计算为什么。这是我的代码。
http://debinz.slousn/abc/def/hello/brain/2.5.html
//让用户输入九位数来检查整数 //将整数转换为要在
上操作的字符串import java.util.Scanner;
public class BookNumber {
public static void main(String[] args) {
// Calculate the check digit number for an ISBN
答案 0 :(得分:2)
你的代码的主要部分(当我清理格式化时,我辩论了其余部分):
int CDValue = 0;
boolean isbnvalue = (d1*1 + d2*2 + d3*3 + d4*4 + d5*5 + d6*6 + d7*7 + d8*8 + d9*9) % 11 == CDvalue;
if( CDvalue == 0 ){
int CD = 0;
System.out.println( "Your check digit is " + CD);
} else if ( CDvalue == 10){
System.out.println( "Your check digit is X" );
} else {
System.out.println( "Your check digit is " + CDvalue);
}
}
您实际上从未在代码中使用isbnvalue,也没有更改CDValue,因此CDvalue始终为零。