System.out.println不打印输出?

时间:2015-02-22 08:00:34

标签: java palindrome

我正在尝试获得回文列表,但它没有给出任何类型的输出。但是当我检查回文时它会起作用。

public class Main {
    public static void main(String[] args) {
        int num=0 ,org=0 , rem = 0,rev=0 ,a=0;
        for(num=12 ; num<=101; num++) {
            org=num ;

            while(num>0) {
                rem = num % 10 ; 
                num = num /10 ;
                rev= (10*rev)+rem;
            }

            if(rev==org)
                System.out.println(org);
        }
    }
}

为什么我没有得到任何输出?

1 个答案:

答案 0 :(得分:1)

您有两个错误:

  1. 您应该在每次迭代中将rev重置为0(否则,rev只会在第一次迭代中正确)。
  2. 您应该在每次迭代结束时添加num=org;,以恢复循环变量的值。否则,循环可能永远不会终止,因为你正在弄乱循环体内的循环变量。
  3. 它应该是这样的:

    for(num=12 ; num<=101; num++) {   
        org=num ;   
        rev = 0; // added
        while(num>0) {
          rem = num % 10 ; 
          num = num /10 ;
          rev= (10*rev)+rem;
        }
        if(rev==org)
            System.out.println(org);
        num = org; // added
    }
    

    输出:

    22
    33
    44
    55
    66
    77
    88
    99
    101