Multiple conditions in for statement

前端 未结 4 1541
有刺的猬
有刺的猬 2021-01-28 02:20

I have this code in a function, but when it runs it does a long pause and then it says:

$floating point exception

I am assuming this is due to

相关标签:
4条回答
  • 2021-01-28 02:49

    You will get into an infinite loop when the if-statement is reached. This will cause the error. You probably wanted to stop the loop if j == 1? Then you had to write

    for (i = 2; (i < number || j!=1); i++)
    
    0 讨论(0)
  • 2021-01-28 02:54

    floating point exception - This means there's an arithmetic error.

    It looks like you're trying to stop the loop with j, but what you're actually doing is continuing the loop forever (because once you get j==1 the or condition is always true).
    What then happens is you loop i through all the Integer values back to 0 and get the exception.

    What I think you want to do is :

    for (i = 2; (i < number); i++)
    {
        if (number%i==0)
        {
            j = 1;
            break;
        }
    }
    
    0 讨论(0)
  • 2021-01-28 03:07

    Once you set j to 1 the loop will go on forever. If you want to stop the loop when the if condition is true use break.

    0 讨论(0)
  • 2021-01-28 03:08

    Remember that the condition is for the loop to continue, not for it to end.

    It's difficult to look at your code and see intuitively what you're trying to do. Although you could fix this by flipping some logic around (you meant (i < number && j != 1)), it's best to stop and use break inside the loop instead. The logic will be far clearer, and then you won't make errors like this.

    0 讨论(0)
提交回复
热议问题