# Extracting numbers from from a user input and comparing it to

Andrew Albers

Greenhorn

Posts: 10

posted 8 years ago

The first line of the condition checks to see if the units and the tens digits are equal. The second line checks to see if the units digit are equal. This makes the second line moot, as any test that will pass the first line will also pass the second line.

The third line of the condition checks to see if the hundreds digit and higher are equal. The fourth line checks to see if the tens digit and higher are equal. This makes the third line moot, as any test that will pass the fourth line will also pass the third line.

And finally, to pass both the first and fourth lines, the two numbers must be the same. This makes the whole condition moot, as we know the numbers are not exactly equal, as it would not have arrived at this "else" clause if they were equal.

Henry

The first line of the condition checks to see if the units and the tens digits are equal. The second line checks to see if the units digit are equal. This makes the second line moot, as any test that will pass the first line will also pass the second line.

The third line of the condition checks to see if the hundreds digit and higher are equal. The fourth line checks to see if the tens digit and higher are equal. This makes the third line moot, as any test that will pass the fourth line will also pass the third line.

And finally, to pass both the first and fourth lines, the two numbers must be the same. This makes the whole condition moot, as we know the numbers are not exactly equal, as it would not have arrived at this "else" clause if they were equal.

Henry

posted 8 years ago

Basically, you would need a better way to check if one digit is in another number:

You would then have to call this method for each of the digits in your number:

This check will still fail though, if either the guess or the lotto has duplicate digits and there is a match like that. For instance, if the lotto number is 123 and the guess is 111, then you still have a problem - 1 is in the lotto number. Checking both ways (digitIsInNumber(lotto % 10, guess)) will also not solve this; just check with lotto 112 and guess 122.

You could try sorting the digits within the number, and then check if the sorted values are equal:

That brings us to one small flaw in your logic: you never check if the user input is in the right range.

You would then have to call this method for each of the digits in your number:

This check will still fail though, if either the guess or the lotto has duplicate digits and there is a match like that. For instance, if the lotto number is 123 and the guess is 111, then you still have a problem - 1 is in the lotto number. Checking both ways (digitIsInNumber(lotto % 10, guess)) will also not solve this; just check with lotto 112 and guess 122.

You could try sorting the digits within the number, and then check if the sorted values are equal:

That brings us to one small flaw in your logic: you never check if the user input is in the right range.

SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6 - OCEJPAD 6

How To Ask Questions How To Answer Questions