2013-07-14 2 views
0

안녕하세요 저는 초보자입니다. 따라서 복잡한 것을 사용하지 마십시오. 여기에 내가 의미하는 SS가 있습니다. http://prntscr.com/1ffec0 현재 열과 행 번호가 표시되는 세로 및 가로 방향의 숫자에 대해서는 걱정하지 마십시오. 나는 내 코드를 가지고 있지만 그것에 대해가는 방법과 코드를 곱하는 방법에 대해 완전히 혼란 스럽다.루프를 사용하여 Java에서 기본 곱셈 테이블 만들기

import java.util.Scanner; 

public class test 
{ 
    public static void main(String[] args)  
    { 
     Scanner keyboard = new Scanner (System.in); 
     int x=0, y=0; 
     System.out.print("Enter rows "); 
     x = keyboard.nextInt(); 
     System.out.print("Enter columns "); 
     y = keyboard.nextInt(); 

     for (int i=1; i<=x; i++) 
     { 
      for (int j=1; j<=y; j++) 
      { 
       System.out.print(" "+i+j); 
      } 
      System.out.println(); 
     } 
    } 
} 
+2

'i * j'와 같은 뜻입니까? –

+0

오, 좋은 본보기! 값에 대해 '이상한'값을 인쇄하는 것으로 보입니다. 이것은 문자열에'i'를 연결 한 다음 문자열에'j'를 연결하기 때문입니다. 예를 들어'i'가 1이고'j'가 2라면'12'가됩니다. –

답변

0

변화의 I + J 내가 BTW 당신이

4

내가 똑바로 당신에게 대답을하지 않을거야 행렬의 절반을 인쇄 J 을 *하지만 내가 도울거야하여 어떤 의사 코드로 문제를 더 잘 이해할 수 있습니다. 이제 인쇄 할 값을 고려 당신은 정확하게 2 개 루프

Loop x = 1 to 3 
    Loop y = 1 to 3 
     //Do stuff 
    End innerloop 
End outerloop 

을 설정 않은 사용자의 X-범위는 1에서 3로 이동한다고 가정하고 Y-범위도 3

1 ~ 간다 (1, 2), (1, 3), (2, 1), (2, 2) 및 (x, y)와 같은 쌍으로, ~까지 (3, 3);

은 분명히 당신은 제품을 표시 할, 그래서 당신이 그것을하지 않고 다음 값을 인쇄 할 때문에, 공간을

//Do stuff: 
z = x * y 
Print z + " " 

인쇄 Z 밖으로 루프 내부의 변수 Z = X * Y를 만들고 떠나 첫 번째 값에 인접 해있다.

이렇게하면 모든 솔루션이 직선으로 인쇄됩니다. 그러나 당신은 그것이 매트릭스에 분명히 있기를 원합니다. 그 대답은 단 한 줄의 코드만으로 간단하게 변경하는 것입니다. 내부 루프의 모든 전체 사이클 후에 기본적으로 한 행의 곱셈을 완료합니다 (이유에 대해 생각하십시오). 그래서 해결 방법은 내부 루프가 실행을 마친 후 바로 x의 다음 외부 루프 값으로 가기 전에 새 줄을 인쇄하는 것입니다. 우리 모두는 다음과 같은 것을 가지고 있습니다 :

Loop x = 1 to 3 
    Loop y = 1 to 3 
     z = x * y 
     Print z + " " 
    End innerloop 
    Print NewLine // "\n" is the way to do that 
End outerloop 

그리고 끝났습니다. 범위를 1에서 3 등으로 하드 코딩하는 대신 사용자 입력을 받아들이거나 코드에 입력하면됩니다. 이것은 사소한 일이며 함께 사용하는 것이 확실합니다.

0

"+"대신 "*"를 사용해야합니까?

이 같이

:

public static void print(int x, int y) { 
    for (int i = 1; i <= x; i++) { 

     for (int j = 1; j <= y; j++) { 

      System.out.print(" " + i * j); 
     } 
     System.out.println(); 

    } 
} 

을 그리고 그 후 당신은 형식에 대해 생각 할 수 있습니다!? 내 조언 : 가장 긴 가치 (항상 x * y)의 길이와 그것에 대한 "reservice"enought 공간을 생각해보십시오!

+0

헥타르는 일했지만 맹세 컨데 이전에 시도해 보았지만 작동하지 않았다. – colors

+0

어쩌면 당신은 "+"를 망쳤습니까? 당신은 문자열 ""과 i * j를 연결하기 위해 그 용어의 infront를 필요로합니다. – Klumbe

관련 문제