簡體   English   中英

Java程序中的錯誤無限循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM