2014-11-10 2 views
0
public static void diamondOfAsterisks(int numOfRows){ 
    String diamondStr=""; 

    for (int row = 1; row == (numOfRows/2+1); row++){ 
     for (int space = numOfRows; space < row; space--){ 
      diamondStr += " "; 
     } 
     for (int stars = 1; stars >= (2 * row) - 1; stars++){ 
      diamondStr+= "*"; 
     } 
     diamondStr+="\n"; 
    } 

    for (int row = numOfRows/2 ; row >= 1; row--){ 
     for (int space = numOfRows; space > row; space--){ 
      diamondStr += " "; 
     } 
     for (int stars = 1; stars <= (2 * row)-1; stars ++){ 
      diamondStr += "*"; 
     } 
     diamondStr += "\n"; 
    } 
    System.out.print(diamondStr); 

별표로 만든 다이아몬드를 작성하는 Java 프로그램을 작성하고 있습니다. 위의 코드는 나에게 제공되는 가상 코드를 기반으로합니다. 그러나 Java 8u25가 설치된 NetBeans 8.0.1 (IDE의 문제는 아닌 것 같군요)에서 첫 번째 for 루프는 diamondStr에 아무 것도 추가하지 않는 것 같습니다. 내가 잘못 이해하거나 잘못하고있는 것은 무엇입니까?문자열을 추가하는 두 개의 내부 for 루프가있는 outer for for for 루프와 첫 번째 루프는 아무 것도하지 않습니다.

답변

1

첫 번째 for 루프에서 루프를 실행하기위한 조건은 실수로 생각하는 행 == (numOfRows/2 + 1)입니다 < = (numOfRows/2 + 1)

+0

아니요 루프를 종료하는 조건은 행 == (numOfRows/2 + 1)이 아닙니다. for 루프 구문은 다음과 같습니다 (초기화, 종료 조건, 증가) {statements} –

+0

아니요, 여기를보십시오. http://www.tutorialspoint.com/java/java_loop_control.htm 사실, for 루프를 실행할 것입니다. –

+0

OK 당신이 말하는 것을 보았습니다.하지만이 변경을하면 무한 루프가 실행되는 것 같습니다. –