关于模块和 return 语句的问题

Questions about moduls and return statement

关于这段代码我有两个问题。 有人能解释一下 if 语句到底在做什么吗?我知道 count 必须在每次测试为真时递增,但我不确定这个 n % i == 0 在做什么。

我的第二个问题是,如何在控制台上打印 return 语句的答案?

int n = 10;
countFactors(n);
   }
   public static int countFactors(int n){
      int count = 0;
      for (int i = 1; i <= n; i++){
         if (n % i == 0) //this line
         count++;
      }
      return count;
   }
}

好吧,正如方法名称所暗示的那样,计数表示 n 具有的除数。

if 语句测试以下内容:n 是否可以被 i 整除?。换句话说:n/i 是一个整数吗?

如果您要使用:

if(n%i == 1)

相反,它会计算以下数字:n/i has a remainder of 1.

为了打印 return 语句,您可以在 return:

之前添加这一行
public static int countFactors(int n){
    int count = 0;
    for (int i = 1; i <= n; i++){
        if (n % i == 0) 
        count++;
    }
    System.out.println(count);//adding this
    return count;
}

它计算范围内的除数 1-n 例如:

如果 n = 10 结果将是 4 因为有 4 个除数:

1
2
5
10

以及您如何在控制台中打印:

for (int i = 1; i <= n; i++) {
    if (n % i == 0) {
        count++;
        System.out.println(i);
    }
}
System.out.println("Number or disivor = " + count);

你可以在这里学习:Table of divisors

% 运算符(称为余数或取模运算符)基本上是将一个数除以另一个数,只给出余数,除此之外别无其他。例如,如果你做 4 % 2,它会给你 0,因为 2 均匀地进入 4。如果你愿意做 4 % 3,它会给你 1,因为那是 4 / 3 的剩余部分。另请查看此网站:http://www.cafeaulait.org/course/week2/15.html

countFactors方法循环1到n并包含n。如果你做 10 % 1,你会得到 0,因为 1 平均进入 10,所以计数会增加。