编写一个 Java 程序,使用 For 循环、While 循环、Do While 循环和函数来查找一个数的因数。能够被给定数字整除的数字(即余数为 0)称为给定数字的因数。
Java 查找数字因数的程序(使用 For 循环)
此 Java 程序允许用户输入任何整数值。接下来,此程序将使用 Java For 循环查找数字的因数。
import java.util.Scanner;
public class FactorsOfNumberUsingFor {
private static Scanner sc;
public static void main(String[] args) {
int Number, i;
sc = new Scanner(System.in);
System.out.println("Please Enter any number to Find Factors: ");
Number = sc.nextInt();
for(i = 1; i <= Number; i++) {
if(Number%i == 0) {
System.out.format(" %d ", i);
}
}
}
}

在此 Java 程序中,我们声明了两个整数变量 Number 和 i。以下语句将提示用户输入任何正整数。然后,该数字被赋值给变量 Number。
System.out.println("Please Enter any number to Find Factors: ");
Number = sc.nextInt();
在下一行,我们有一个 For 循环,for 循环内的条件 (i <= Number) 将确保 i 不会超过该数字。在 For 循环内,我们使用 If 条件来检查 Number % i 是否等于零。如果条件为 True,则打印 i 作为输出。请参阅 Java If 语句文章以了解 If else 语句。
for(i = 1; i <= Number; i++) {
if(Number%i == 0) {
System.out.format(" %d ", i);
}
}
让我们根据迭代来看这个 Java 程序查找数字因数的 For 循环的工作原理。从上面的屏幕截图中,用户输入的值为:Number = 6。
第一次迭代
对于第一次迭代,Number = 6 且 i = 1
- For 循环内的条件 (1 <= 6) 为 TRUE。因此,编译器将开始执行 For 循环内的语句
- 在 for 循环内,我们有 If 语句,条件 if (6 % 1 == 0) 为 TRUE。因此,System.out.format(” %d “, i); 语句将被打印
- 最后,i 将增加 1。请参阅 Java 中的递增和递减运算符文章以了解 ++ 符号。
第二次迭代
从第一次迭代开始,i 的值变为 i = 2
- For 循环内的条件 (2 <= 6) 为 TRUE。因此,编译器将开始执行 For 循环内的语句
- 在 for 循环内,if 条件 if (6 % 2 == 0) 为 TRUE。因此,System.out.format(” %d “, i); 语句将被打印
- 最后,i 将增加 1。
第三次迭代
从第二次迭代开始,i 的值为 i = 3
- For 循环内的条件 (3 <= 6) 为 TRUE。
- 在 for 循环内,if 条件 if (6 % 3 == 0) 为 TRUE,因此 System.out.format(” %d “, i); 语句将被打印
- 最后,i 将增加 1。
Java 程序查找数字因数的第四次迭代
从第三次迭代开始,i 的值为 i = 4
- For 循环内的条件 (4 <= 6) 为 TRUE。
- 在 for 循环内,if 条件 if (6 % 4 == 0) 为 False。因此,System.out.format(” %d “, i); 语句将不会被打印
- 最后,i 将增加 1。
第五次迭代
从第四次迭代开始,i = 5
- For 循环内的条件 (5 <= 6) 为 TRUE。
- 在 for 循环内,if 条件 if (6 % 5 == 0) 为 False。因此,System.out.format(” %d “, i); 语句将不会打印。
- 最后,i 将增加 1。
Java 程序查找数字因数的第六次迭代
从第五次迭代开始,i 的值变为 i = 6
- For 循环内的条件 (6 <= 6) 为 TRUE。
- 在 for 循环内,if 条件 if (6 % 6 == 0) 为 True。因此,System.out.format(” %d “, i); 语句将打印。
- 最后,i 增加 1。
第七次迭代
从第六次迭代开始,i 的值为 i = 7,For 循环内的条件 (7 <= 6) 为 FALSE。因此,Java 编译器将退出 For 循环。
Java 查找数字因数的程序(使用 While 循环)
此 Java 程序允许用户输入任何整数值。通过使用此值,此程序将使用 Java While 循环查找数字的因数。
import java.util.Scanner;
public class FactorsOfNumberUsingWhile {
private static Scanner sc;
public static void main(String[] args) {
int Number, i = 1;
sc = new Scanner(System.in);
System.out.println("Please Enter any number to Find Factors: ");
Number = sc.nextInt();
while(i <= Number) {
if(Number % i == 0) {
System.out.format(" %d ", i);
}
i++;
}
}
}
我们只是用 While 循环替换了上面的示例中的 Java For 循环。如果您不理解 While 循环,请参阅它。
Please Enter any number to Find Factors:
30
1 2 3 5 6 10 15 30
Java 查找数字因数的程序(使用 Do While 循环)
此 Java 程序允许用户输入任何整数值。通过使用此值,此程序将使用 Do While 循环查找数字的因数。
package SimplerPrograms;
import java.util.Scanner;
public class FactorsOfNumberUsingDoWhile {
private static Scanner sc;
public static void main(String[] args) {
int Number, i = 1;
sc = new Scanner(System.in);
System.out.println("Please Enter any number to Find Factors: ");
Number = sc.nextInt();
do {
if(Number%i == 0) {
System.out.format(" %d ", i);
}
i++;
} while(i <= Number);
}
}
我们只是用 Do While 循环替换了上面的示例中的 While 循环。如果您不理解 do while 循环的功能,请参阅 Java Do While 循环。
Please Enter any number to Find Factors:
256
1 2 4 8 16 32 64 128 256
Java 查找数字因数的程序(使用函数)
此 Java 程序允许用户输入任何正整数值。然后,我们将用户输入的值传递给我们创建的方法。在此用户定义函数中,此程序将使用 Java For 循环查找数字的因数
package SimplerPrograms;
import java.util.Scanner;
public class FactorsOfNumberUsingMethods {
private static Scanner sc;
public static void main(String[] args) {
int Number;
sc = new Scanner(System.in);
System.out.println("Please Enter any number to Find Factors: ");
Number = sc.nextInt();
FactorsOfNumber(Number);
}
public static void FactorsOfNumber(int Number) {
int i;
for (i = 1; i <= Number; i++) {
if(Number % i == 0) {
System.out.format(" %d ", i);
}
}
}
}
Please Enter any number to Find Factors:
640
1 2 4 5 8 10 16 20 32 40 64 80 128 160 320 640
在此示例中,我们正在调用 FactorsofNumber(Number) 方法。
FactorsOfNumber(Number);
当编译器在 main() 程序中遇到 FactorsofNumber(Number) 行时,编译器将立即跳转到下面的函数
public static void FactorsOfNumber(int Number) {
评论已关闭。