大家好我是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年。
答案 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