[英]Error infinite loop in java program
我試圖運行一個返回鑽石戒指(字符串)的程序。 編譯沒有錯誤,但是當我運行它時,執行沒有停止。
class Diamond {
public static String print(int n) {
int j=n/2,i=0,k=1;
String ch="";
while(i<n){
for(int c=0;c<java.lang.Math.abs(j);c--)
ch=ch + " ";
for(int r=0;r<k;r++)
ch=ch + "*";
j--;
if(j<=-1){
k=k-2;
}
else{
k=k+2;
}
j--;
ch=ch + "\n";
i++;
}
return ch ;
}
public static void main(String []args){
System.out.println(Diamond.print(5));
}
}
這是我的代碼,我認為這是一個無限循環,但我找不到它。
在您的第一個for
循環中更改c--
for c++
例如:
for(int c=0;c<java.lang.Math.abs(j);c++)
當您比較c
具有較高的價值,如果你遞減c
你永遠也不會達到這個值( abs(j)
其實你是從它保持距離。 從而得到無限循環。
int c=0;c<java.lang.Math.abs(j);c--
您正在遞減c並將其與正值進行比較,因此除非j為0,否則它將永遠不會得到java.lang.Math.abs(j)。
嘗試這個:
int c=0;c<java.lang.Math.abs(j);c++
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.