2013-06-27 2 views
2

어떻게 내 현재 코드는 다음과 같습니다이인쇄 피라미드

1 
23 
456 
78910 

같은 자바에서 피라미드를 인쇄 할 수 있습니다

public class T { 
    public static void main(String[] args) { 
     int i, j, num = 1; 
     int n = Integer.parseInt(args[0]); 

     for (int i = 1; i <= n; i++) { 
      for (int j = 1; j <= i; j++) { 
       System.out.println(num); 
       num++; 
      } 
      System.out.println(" "); 
     } 
    } 
} 

나는이 선언를 제거하려고하면 i & j 배열 범위 외 예외를 표시합니다. 그러나 'i'& 'j'가 문제를 생성하고 있습니다. 내 코드는 어떻게 생겼을 까?

+2

당신이 통과 않은 : 당신이

java MyProgram one two 

그런 다음 인수에 포함 된 실행하는 경우 즉

, _any_ 프로그램에 대한 명령 줄 인수는 무엇입니까? –

+0

나는 선생님 코딩에 대해 새로운 입장이다. 나는 당신이 무엇에 관해 가지고 있는지 알지 못한다. 제게 명령 행 인자에 대해서도 설명해 주시길 바랍니다. – user2502227

+0

당신은'args [0]'에서 읽고 있습니다. 그 가치는 무엇을 기대합니까? –

답변

2
int val=1; 
    for(int i=0;i<6;i++){ 
     for(int j=1;j<i;j++){ 
      System.out.print(val); 
      val++; 
     } 
     System.out.print("\n"); 
    } 

초기 val은 1입니다. 첫 번째 for 내부에서 루프 i = 0이고 j는 1에서 증가하지만 i = 0 일 때 루프는 실행되지 않습니다. 그러면 첫 번째 값은 1이됩니다. 그런 다음 새 행을 가리 킵니다.

i = 1이면 j는 여전히 1이므로 for 루프는 1 회 실행되고 2는 val에 증가 (val ++)가 있으므로 2를 인쇄합니다. 내부에서 j = 2 일 때 for 루프가 실행되고 있지 않다. 거기서 val의 새로운 값 (3)을 출력하라. 이에

그래서 난 당신이 당신의 유일한 인수로 행의 수를 줄 생각

+0

허 설명이 필요합니다. –

+0

이 코드는 트릭을 마쳤습니다. ..... 나는 당신을 사랑합니다. ..u. 내 끔찍한 선생님으로부터 저를 구해주세요. – user2502227

+2

@ user2502227 아직이 답변에서 무엇을 배웠습니까? –

0

작동합니다, 그래서 코드는이 코드는 당신을 위해 작동합니다

public static void main(String[] args) 
{ 
    int lines = Integer.parseInt(args[0]); 
    int num = 1; 
    for (int i = 1; i <= lines; i++) { 
     for (int j = 1; j <= i; j++) { 
      System.out.print(num); 
      num++; 
     } 
     System.out.println(""); 
    } 
} 
2
public static void main(String[] args) { 
    int num = 1; 
    //i is how many numbers per row 
    for(int i = 1; i < 5; i++){ 
     //prints i numbers because j increases from 0 to i, incrementing num each time 
     for(int j = 0; j < i; j++){ 
      System.out.print(num++); 
     } 
     System.out.println(); 
    } 
} 

될 것이다.

Java를 더 잘 이해하고 컴파일러에서 코드에 오류가 발생하는 이유를 보려면 여기를 읽어보십시오. stackoverflow를 사용하여 다른 사람의 코드를 복사하지 않고 복사해서는 안됩니다. 코드에서 ij을 두 번 선언했습니다. Java에서는 변수를 두 번 선언 할 수 없습니다. 당신은 int i,j, num = 1;에서 먼저 했었고 각각의 루프에서 다시 for (int i = 1; i <= lines; i++)으로 다시했습니다. for(i = 1; i <= lines; i++)이라고 말하면이 문제를 해결할 수 있습니다. for 루프의 두 번째 버전에서 int이 어떻게 사라 졌는지 확인하십시오. 유형을 선언 할 때 당신은 단순히 오히려 당신이로 새 변수를 만드는 대신 for 루프에서 변수에 값을 할당 할 수 있습니다 int i = 1

for 루프의 문법은 다음과 같다 :

for(initialization; Boolean_expression; update) 

{ 
    //Statements 
} 

초기화 단계입니다 처음에는 한 번만 실행됩니다. 이 단계에서는 루프 제어 변수를 선언하고 초기화 할 수 있습니다. 세미콜론이 나타나는 한 여기에 진술을 할 필요는 없습니다.

수신 한 배열 범위를 벗어난 오류에 대해서는 명령문에서 명령 줄 인수를 읽으려고합니다. int n = Integer.parseInt(args[0]); main 메서드의 매개 변수가 String[] args인지 확인하십시오. 이것을 명령 행 인수라고 부르며 수동으로 명령 행에서 프로그램을 실행하는 경우 전달 될 수 있습니다. args[]의 범위를 벗어난 args[0]을 읽으려고했습니다.

[ "하나", "둘"]

public static void main(String [] args) { 
    String one = args[0]; //=="one" 
    String two = args[1]; //=="two" 
} 
0
int l=1; 

for (int i=0; i<5; i++) 
    { 
    for (int k=0; k<5-i; k++) 
    { 
     System.out.print(" ");   
    } 
    for (int j=0; j<(i*2)+1; j++) 
    { 
     if(j%2!=0){ 
      System.out.print(l++); 
     }else { 
      System.out.print(" "); 
     }   
    } 
    System.out.println(""); 
    } 
0
public static void pyramid(int max) { 
    int num = 1; 
    max = 4; 
    for (int row = 0; row < max; row++) { 
     for (int column = 0; column < max; column++) 
      System.out.print(column <= row ? num++ : " "); 
     System.out.println(); 
    }  
}