代码跳过运行

时间:2017-06-04 13:52:28

标签: java exit palindrome

public class A{
public static void main(String[] args) {
    int a;
    int b;int c=0;
    for(a=100;a<=999;a++){
        for(b=100;b<=999;b++){
            int n=a*b;
            int temp=n;
            while(n>0){
                int r=n%10;
                c=(c*10)+r;
                n=n/10;
            }
            if(temp==c){
                System.out.println(c);
            }
        }
    }
    }
}

代码编译得很好但是在运行它时只是跳过所有内容并退出。请帮忙。 附:问题4 ProjectEuler

2 个答案:

答案 0 :(得分:2)

首先让格式化代码以便轻松阅读:

public class A {
    public static void main(String[] args) {
        int a;
        int b;
        int c = 0;
        for (a = 100; a <= 999; a++) {
            for (b = 100; b <= 999; b++) {
                int n = a * b;
                int temp = n;
                while (n > 0) {
                    int r = n % 10;
                    c = (c * 10) + r;
                    n = n / 10;
                }
                if (temp == c) {
                    System.out.println(c);
                }
            }
        }
    }
}

现在我们注意到,让我们远离main方法中的print语句的唯一块是两个for循环和一个if statemet。 检查这两个循环,它们没有明显的错误,所以我们将它们排除在外,剩下的就是if语句。此时我们可以假设temp永远不等于c。 如果你不能仅仅通过查看代码来追踪为什么不满足这个条件,你可以使用print语句进行一些简单的debuging(例如,在if之前打印变量c和temp,以便直观地检查它们的值)或者使用例如,您可以在IDE上找到一些更高级的debuging工具。

有关调试的指南:

How to debug a Java program without using an IDE?

http://www.vogella.com/tutorials/EclipseDebugging/article.html

答案 1 :(得分:1)

由于ourtimetemp==c

,因此无法输出任何内容