Well, first off, this part will never be true:
while (... && (firstNumb / secondNumb < 0 || ...))
Because your random numbers will always be 1 or greater: so 0 isn't possible, much less negative numbers!
So the condition you are evaluating is:
while (firstNumb % secondNumb != 0 && firstNumb / secondNumb > 10)
But ... your second condition will rarely match either:
while (... && firstNumb / secondNumb > 10)
Because
firstNumb
is 1 .. 99, and
secondNumb
is 1 .. 9.
So unless
firstNumb
is high, and
secondNumb
is low, the result of the division is never going to be greater than 10.
In fact, if
secondNum
is 5 for example, then
firstNumb
has to be 55 or higher for the condition to be true. For 6, that's 66+; for 9 there is only one value of
firstNumb
that will give you true: 99!
You have stacked the odds against you in getting that loop to go round at all!
Quote:
Do you mean, generate a secondNumb and then add firstNumb ++ in a while-loop?
You could, but ... why use a loop at all?
When you use a loop, your code become non-deterministic in that you do not know how long it will take to generate a valid value.
The way I'd do it is to generate secondNumb, and use that as and index into an array of arrays. Each "inner array" contains only the "valid values" for that index:
1:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
2:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
3:
3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
4:
4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
5:
5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
6:
6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
7:
7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
8:
8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
9:
9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99
Then generate a second random number which selects one of them.
That way, your code has no loops, only generates valid values, and is time deterministic.