Java:for循环不能正常工作

时间:2012-10-21 15:16:53

标签: java for-loop

大家好我是Java的初学者,我的英语不好,希望你能理解我的问题:

public static void main(String[] args) {

    int i, a, b, c, d, yil = 1999, rt = 0;


    do{
            //loop searching for 1976
            for( i = 1900; i < 2000; i++){
            //separate "i" to the digits
            a = i / 1000;
            b = i % 1000 / 100;
            c = i % 1000 % 100 / 10;
            d = i % 1000 % 100 % 10;
            rt = a + b + c + d;
            }}
            //while rt=23 and i=1976 equation will be correct then exit the loop and print the 1976.
            while( rt == yil - i );
        System.out.println("Yıl = " + i );

}

但是当我运行该程序时,它总是显示2000而非1976年。

1 个答案:

答案 0 :(得分:4)

您的混乱增量可能会隐藏它,但您无法退出for循环。它总是走到尽头,即i=2000

for( i = 1900; i < 2000; i++){
   ... // no break in there
}
...
System.out.println("Yıl = " + i );

没有理由在你的情况下有两个循环。看来你想要的是

        int i, a, b, c, d, yil = 1999, rt = 0;
        //loop searching for 1976
        for( i = 1900; i < 2000; i++){
            //separate "i" to the digits
            a = i / 1000;
            b = i % 1000 / 100;
            c = i % 1000 % 100 / 10;
            d = i % 1000 % 100 % 10;
            rt = a + b + c + d;
            if (rt==yil-i) break;
        }
        System.out.println("Yıl = " + i );  }

此输出

Yıl = 1976