无论输入是什么,我的校验位总是返回0

时间:2015-09-17 17:23:26

标签: java

我必须为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

1 个答案:

答案 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始终为零。