Java 我不知道这为什么不起作用

Java 我不知道这为什么不起作用,java,Java,我在Java上为Euler制作了这个,它只是不断地反复打印0。我不知道我做错了什么,请帮帮我好吗 class Euler { public static void main (String[]args) { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; int palindrome = 0; boolean run = true;

我在Java上为Euler制作了这个,它只是不断地反复打印0。我不知道我做错了什么,请帮帮我好吗

class Euler 
{

  public static void main (String[]args) 
  {
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    int e = 0;
    int f = 0;
    int palindrome = 0;
    boolean run = true;
    while (run == true) {
      for (int f4 = 999; f4 >= 100; f4--) {
        for (int f5 = f4; f5 >= 100; f5--) {
          palindrome = f4 * f5;
          f = (palindrome % 10);
          e = (palindrome % 100 - f);
          d = (palindrome % 1000 - e);
          c = (palindrome % 10000 - d);
          b = (palindrome % 100000 - c);
          a = (palindrome % 1000000 - b);
          if (a == 0) {
            if ((b == f) && (c == e)) {
              run = false;
            }
          } else {
            if ((a == f) && (b == e) && (c == d)) {
              run = false;
            }
          }
        }
      }
    int[] nums = new int[1];
    nums[0] = palindrome;
  {
    System.out.println(Arrays.toString(nums));
  }
}
  }
}
它应该算出由两个三位数的乘积构成的最大回文。

你的循环永远不会被输入。当你说

for (int f4 = 999; f4 == 100; f4--) {
999不是==100,因此跳过循环。我想你想要

for (int f4 = 999; f4 >= 100; f4--) {
下一个循环也有同样的问题

for (int f5 = f4; f5 >= 100; f5--) { // <-- not == 100

循环不是只输入了一次吗?我是个白痴,我一直都有这个问题,但我仍然不记得。现在它只给了我10000不,这是一个for循环。输入Do循环,然后对其求值,因此它们将运行一次或多次。请使用调试器或放入printf语句以查看它正在执行的操作。