Java的。使用布尔值检查输入的数字是否是正确的长度

时间:2016-06-23 19:52:03

标签: java

我明年在学校的Java教科书中遇到了问题,我无法弄清楚如何正确地完成这项工作。它希望我使用布尔值来检查输入的数字是否是6位数。我将复制并粘贴问题以便更清晰。

  

**旅行门票公司出售航空公司,旅游团和其他旅行相关的门票

     

服务。因为票务代理经常输错长票   数字,旅行

     

门票已要求您编写指示无效的应用程序   门票号码

     

条目。班级提示票务代理输入六位数的票证   数。票

     

数字的设计使得如果你丢弃数字的最后一位数字,   

     数字乘以7,除法的余数将与。相同   最后一位数字。

     

以下示例说明了此过程:

     

步骤1输入票号;例如,123454。

     

步骤2删除最后一位数字,留下12345。

     

步骤3确定票号除以7时的余数。   在此

     

步骤4分配比较的布尔值   余数和

     

步骤5在消息框中显示结果为true或false。

     

案例,12345除以7,其余为4。

     

从票号中删除的数字。

     

接受代理商的票号并验证它是否为   有效号码。

     

使用以下票号测试应用程序:

     

l 123454;比较应评估为真

     

147103;比较应评估为真

     

l 154123;比较应该评估为假

     

将程序保存为TicketNumber.java。**


这是我的代码

//variables
int ticketNum;
Scanner input = new Scanner(System.in);

//prompt for input of ticket number
System.out.println("Please enter a ticket number >> ");
ticketNum = input.nextInt();

//arithmetic for figuring out ticket number
int lastDigit = ticketNum / 10;
boolean ticketValidation = (lastDigit % 7) == ticketNum;

//output for validation
System.out.println("this ticket number is " + ticketValidation);


每次我运行它都会出现错误。


谢谢你的帮助,请不要吝啬,我是新来的。

2 个答案:

答案 0 :(得分:3)

int lastDigit = ticketNum / 10;没有给你最后一位数字,它会为你提供除最后一位数之外的所有数字。 然后(lastDigit % 7)给你原始ticketNum的十分之一,mod 7.这将是0到6之间的int

0到6之间的int无法与原来的六位数相等!

该过程被称为"笔检查",您应该使用它。

请用语言向我们描述算法应该是什么。

答案 1 :(得分:0)

你需要这样做:

int remainingDigits = ticketNum/10;
int lastDigit = ticketNum%10;
boolean ticketValidation = (remainingDigit % 7) == lastDigit;
相关问题