在Java中使用mod 3

use*_*895 0 java modulus

所以,我想找到1到100之间的数字可以被3和7整除.我得到它的工作,除了其中一个数字.由于某种原因,3%3给了我3作为余数,但6%3给了我0.这是我的代码:

     public class factors
     {
public static void main(System args[])
{
    //Variables
    int integer, remainder;

    //Displays header
    System.out.print("Integers less than 100 that are \nevenly divisible by 3 or 7");

    //Loops through each integer
    for (integer = 1; integer <= 100; integer++)
    {
        remainder = integer % 3; //determines if 3 is a factor

        if (remainder == 0) //displays integer 
        {
            System.out.println(integer + " is divisible by 3");
        }

        remainder = integer % 7; //determines if 7 is a factor

        if (remainder == 0) //displays integer
        {
            System.out.println(integer + " is divisible by 7");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这不适用于3号?

Pet*_*rey 6

你的代码实际上正在做

remainder = 3 % 7; // equals 3.
Run Code Online (Sandbox Code Playgroud)

确定代码未执行操作的最佳方法是使用调试器逐步执行代码.

所有3和7的倍数将是21的倍数,即21,42,63,84.


Daw*_*ica 6

你的3将被添加到上面文本行的末尾.你会看到的

Integers less than 100 that are 
evenly divisible by 3 or 73
Run Code Online (Sandbox Code Playgroud)

因为你写的print不是println这行文字.%运算符正常工作,3%3确实为0,而不是3.