2013-06-04 1 views
0

데이터베이스 업데이트에 도움이되는 Java 프로그램을 만들려고합니다.Java ... 각 집합의 첫 번째 숫자를 가져 오는 중 13

나는

for(int i = 1; i < 3095; i++) 
    if((i-1)%13==0) 
     System.out.println(); 
    System.out.println("INSERT INTO categories ('"+i+"' , '"+(i+13)+'"); 

는 기본적으로 나는 13의 각 세트의 첫 번째 숫자를 기록하고 System.out.println 명령에 넣어하는 방법을 찾을 필요가이 코드를 가지고있다. 원본 i+13을 작동 시키려면 어떻게합니까?

이 같은 출력 뭔가 완성 된 프로그램을 찾고 있어요 :

INSERT INTO categories (categories_id, parent_id) VALUES ('1', '1') 
INSERT INTO categories (categories_id, parent_id) VALUES ('2', '1') 
INSERT INTO categories (categories_id, parent_id) VALUES ('3', '1').... 


INSERT INTO categories (categories_id, parent_id) VALUES ('14', '14') 
INSERT INTO categories (categories_id, parent_id) VALUES ('15', '14') 
INSERT INTO categories (categories_id, parent_id) VALUES ('16', '14')....etc 

답변

2

여기 코드가 당신이 원하는 일을하고있어 좀 더 적절한 중괄호 : 당신이 원하는 무엇인지에 대한 이해에서

for (int i = 1; i < 3095; i++) { 
     if ((i-1) % 13 == 0) { 
      System.out.println(); 
     } 
     System.out.println("INSERT INTO categories (categories_id, parent_id) " + 
          "VALUES ('" + i + "' , '" + (i - ((i-1) % 13)) + "')"); 
    } 
+0

고마워요. 이 코드는 내가 필요로하는 것에 완벽하게 작동합니다! – Kyle

1

는 정수 나누기를 절단에, i/13*13 + 1 1 0 = i를 들어, 1, 3, 것, iint입니다 덕분에 가정. ., 12, i = 13, 14, 15, ..., 25의 경우 14로 건너 뛰고 27로 건너 뜁니다.

1,2,3, 13을 누른 다음 14에서 14로 건너 뛰고 (i-1)/13*13 + 1을 사용하십시오.

+0

도움 주셔서 감사합니다. – Kyle

0

-이> 당신은 같은 것을 수행 할 수 있습니다

int i, j; 
    for(i = 1; i < 3095; i+=13) { 
     for(j=i; j<i+13; j++) 
      System.out.println("INSERT INTO categories ('" + j + "' , '" + i + "\')"); 
     System.out.println(); 
     } 
    } 

출력은 다음과 같은 것입니다 :

INSERT INTO categories ('1' , '1') .... INSERT INTO categories ('13' , '1') 
INSERT INTO categories ('14' , '14') ... INSERT INTO categories ('26' , '14') 
INSERT INTO categories ('27' , '27') ... INSERT INTO categories ('39' , '27') 

등등 ...

0

확실하지만, 생각

SET @num = 0; 
INSERT INTO categories (categories_id, parent_id) 
    SELECT @num := @num + 1, (@num DIV 13) * 13 + 1 
    WHERE @num < 3095; 

어쩌면 FROM DUAL의.

관련 문제