2014-01-15 2 views
0

좋아요, 자바에서 13x13 개인 "q"인 사각형을 만드는 작은 예제에 문제가있었습니다. 열과 행을 모두 만들려면 두 개의 루프가 필요하지만 열을 만드는 데 문제가 있다는 것을 이해합니다. 전문자열을 사용하여 길이가 n 인 n 개의 높이가있는 사각형을 만듭니다.

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String q = "q"; 

    for(int i = 0; i<26; i++){ 
     for(int x = 0; x<13; x++){ 
      System.out.print(q); 
      x++; 
     } 
     i++; 
     System.out.println(); 
    } 

} 
+1

반복 할 때마다 증가 시키면 대신 for 루프를 사용하십시오. 또한, 당신이 가지고있는 "이슈"는 무엇입니까? – OnlyThenDidIReckonMyCurse

+0

루프는 인쇄물과 관련이 없습니다. while (i <13 * 13) {System.out.print (q);를 쓰면 똑같은 결과를 얻을 것이다. 나는 ++; }'. 내부 루프 뒤에'System.out.println()'이 없습니다. – Maroun

+1

@ ᴍarounᴍaroun과'if (i % 13 == 0) System.out.println();'이 루프에 추가되면 단일 루프로 문제를 해결합니다! 또는 % 13 == 12 일 것이 가장 좋을 수 있습니다. 다른 인쇄물을 넣으십시오. – Cruncher

답변

1

외부 루프에서 System.out.println()을 사용하면됩니다. 코멘트가 언급 한 바와 같이

while(i<13){ 
    while(x<13){ 
     System.out.print(q); 
     x++; 
    } 
    i++; 
    System.out.println(); 
} 

당신은 또한 이것에 대한 for 루프를 사용하여 더 나을 것입니다.

+0

코드가 향상되어 for 루프가 변경되었습니다. 그러나 새로운 라인을 루프의 일부로 계산하여 필요한 q의 절반을 효과적으로 제공합니다. 외부 루프 수를 2로 곱해야하는 것 이외의 다른 방법보다 효율적인 방법이 있습니까? 즉, i <26 대신 i <13을 유지하는 것입니까? – Sythe

+0

방금 ​​말한 내용이 의미가없는 것처럼 새 코드를 게시하십시오. –

+0

예, 죄송합니다. 원본 코드를 현재 코드로 편집했습니다. – Sythe

1

(또는, 단지 내부 동안의 닫기 중괄호 및 외측 동안의 닫기 중괄호 사이 될 실려)이 선을 삽입하는 System.out.println();

에서 i++ 넣어 각 줄을 끝내라.

관련 문제