2016-09-10 3 views
-3

왜이 프로그램이 작동하려면 2 for 루프가 필요합니까? 2 for 루프없이이 코드를 작성하는 방법이 있습니까?이 프로그램에서 2 for for 루프가 필요한 이유는 무엇입니까?

이 코드의 목적은 길이가 25 인 배열에 정수 값 1-25를 할당하는 것입니다. 배열을 5 개의 개별 라인으로 인쇄합니다. 각각 5 개의 배열 요소를 쉼표로 구분하여 포함합니다.

1,2,3,4,5 
6,7,8,9,10 
11,12,13,14,15 
16,17,18,19,20 
21,22,23,24,25 
물론

public class ArrayNums 
{ 
    static int[] arrayList = new int[25]; 

    public static void main(String[] args) 
    { 

     for(int i=0; i<25; i++) 
      arrayList[i] = i + 1; 
     printArray(); 
    } 

    public static void printArray() 

    { 
     int i; 
     for(i=1; i<=25; i++){ 
      if (i % 5 != 0) 
       System.out.print(arrayList[i-1]+","); 
      else 
       System.out.println(arrayList[i-1]); 
     } 
    } 
} 
+3

'arrayList'를 제거하고'i'를 직접 인쇄하십시오. – melpomene

+1

arrayList는 배열의 오해의 소지가있는 이름입니다 ... –

+0

루프를 사용하면 어떤 영향이 있습니까? 이 코드는 충분히 간단하여 오버플로 최적화 할 필요가 없습니다. –

답변

0

, 주요 기능은 다음과 같이 갈 것 :

public static void main(String[] args) 
{ 
    for(int i=0; i<25; i++){ 
     arrayList[i] = i + 1; 
     if ((i+1) % 5 != 0) 
      System.out.print(arrayList[i]+","); 
     else 
      System.out.println(arrayList[i]); 
    } 
} 

비록, 그것은 간주 더 연습을 가지고

출력이 있습니다 한 번에 한 가지만하는 기능. 이해하기가 훨씬 쉬워 지므로 첫 번째 버전에서는 오히려 조언을 구합니다.

+0

감사합니다. 위의 코드는 목록이 아닌 "25"만 출력합니다. – HerdingDogRescuer

+0

@HerdingDogRescuer'for' 루프 다음에'{'를 잊었거나'{'앞에';'를 삽입했습니다. –

+0

@tobias_k 예, 중괄호를 잘못 배치했습니다. 고맙습니다. – HerdingDogRescuer

0

Separation of Concerns과 프로그램 사용 및 유지 관리가 편리하기 때문에 별도로 유지하십시오. @ cricket_007 명시된 바와 같이 "buildArray()를 printArray()"와 별개의 함수로 사용하는 것이 좋습니다. 이 시나리오에서는

는 출력 하나의 루프를 사용하여 달성하고 대신 ArrayList의 내용의 당신 인쇄 전,하지만 난 당신이 정말로 5 개 라인 25에 1을 인쇄하는 중요한 필요가 의심 될 수있다 - 실제 빌드 및 인쇄 기능이 변경된다고 가정하십시오. 몇 가지 시나리오를 고려하십시오

시나리오 1 은의이 프로그램이 나중에 CSV 파일로 출력도에 요구되었다 말하고 (안 동시에하지만 다른 함수 호출에 의해) JSON 객체를 돌려 보자. 같은 루프에서 작성하고 인쇄하는 경우 이제 건물 파트를 세 가지 다른 기능으로 배치해야합니다.

시나리오 2 은의 당신이 문자 또는 입력 데이터 또는이 세 가지 중 하나를 수행 할 수있는 프로그램의 능력을 숫자에서 배열의 내용을 변경해야한다고 가정 해 봅시다. 루프 내에서이 변경을하면 잠재적 인 충돌이나 오류를 확인하기가 더 어려워집니다.

시나리오 3 시나리오 1과 시나리오 2가 모두 발생합니다.

+0

주목과 감사합니다! 많은 의미가 있습니다. – HerdingDogRescuer

0

이 방법이 도움이 될 것이라고 생각합니다. '첫 번째 메서드 내에 printarray() 메서드를 쉽게 추가 할 수 있습니다.

public static void main(String[] args) { 
    for(int i=1;i<=25;i++){ 
     arrayList[i-1]=i; 
     if(i%5==0){ 
      System.out.println(i); 
     }else{ 
      System.out.print(i+","); 
     } 
    } 
} 
+0

+ Erangad 고맙습니다. printArray() 메서드를 추가하는 것에 대해 명확하지 않습니다. 하면 다음과 같은 오류가 발생하려고합니다 : moreArray.java:5 : 오류 : 기호를 찾을 수 없습니다 – HerdingDogRescuer

관련 문제