我有這段代碼,其中有兩個循環'我'和'j'。嵌套循環無法正確迭代
'j'是內循環變量,它應該在外循環的單次運行時運行999到100。
但它運行隨機等, 假設我= 999
J = 912
J = 911
J = 910
J = 909
J-908
j = 907
J = 906
然後突然內環退出,decreament 1從外循環,使I = 998
然後啓動 'J' 環
J = 908
J = 907
J = 906
J = 905
J = 906
J = 905
J = 904
J = 903
J = 902
然後退出innerloop ......... .......
int product=0;
mainloop:
for(int i=999;i>99;i--){
for(int j=999;j>99;j--){
boolean flag= doSomething(i*j);
if(flag){
product=i*j;
System.out.println("Digits are: "+i+" and "+j);
break mainloop;
}
}
}
public boolean doSomething(int product){
String original= Integer.toString(product),reverse="";
int length = original.length();
for (int i = length - 1; i >= 0; i--)
reverse = reverse + original.charAt(i);
return (original.equals(reverse));
}
爲什麼會發生這種情況?爲什麼內循環不能完成從999到100的循環?
編輯:要清除,「標誌」將是真實的,只有當j = 913和I = 993,這是主要的問題,這個循環不會在這一點上突破,因爲「J」還沒有出現,但913它會隨機生成數字。而且,'break'不僅會打破主循環,而且還會打破內循環。
看看doSomething中的代碼。這應該清除它 – Stultuske
你明確地擺脫它,並回到'if'結尾的主循環... – Mureinik
你可以顯示'doSomething'的代碼? – Eran