股息为零时 % 5 的意外行为

0 c++ operators modulo

我有以下代码

#include <iostream>
#include<exception>
#include <cstdlib>
int main(){
  for (int i = 0; i < 100; i++) {
    std::cout << i << " ";
      if (i % 5 == 0) {
        abort();
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

但它只写 0 并说为什么调用了 abort?我认为它应该输出 0 1 2 3 4 然后退出程序是吗?

Jac*_*cob 5

将其视为%“除法后的余数”。 0 / 5等于 0,余数为 0。