현 블로그는 모바일 환경이 아닌 PC환경에 최적화 되어있습니다.

 Mir의 운영환경

public class Test4_1 {

public static void main(String[] args){

//참고

for(int i=1; i<=9; i++){

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

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

}}

//예제에서 배운 구구단 공식이다.


//1.

for(int i=1; i<=9; i++){  

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

System.out.print(j+" * " + i + " = " + j*i + "\t");

//println은 하나를 출력하고 한칸을 내려가게 되지만

//print는 그냥 옆으로 이어서 출력하게 만든다.

//"\t"는 문제에서 말했듯이 tab값을 넣어준다.

}

System.out.println(); 

//i가 9가 되면 한칸 내려가게 엔터값을 넣어주었다.

}

//예제의 구구단 공식과 비교를 해보자.

//곱하기를 1단부터 출력을 하는데 1단이 끝나면 한칸 내려가서

//2단을 출력한다. 단지 print할때 i와 j의 위치를 바꿔 주었더니

//2단 3단 4단 순으로 출력되는거 같이 보인다.

//2.

//좀더 심화된 버전이다.

//위의 1번문제의 답과 똑같은 공식에서 출발해보자.


for(int i=1; i<=9; i++){  

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

System.out.print(j+" * " + i + " = " + j*i + "\t");

}

System.out.println(); 

}


//j의 조건식을 j<=3으로 바꾸면 3단까지 출력된다.

//그러면 이것을 3번 반복시켜 보자.

for(int z=1; z<=3; z++){ //3열을 출력

for(int i=1; i<=9; i++){  

for(int j=1; j<=3; j++){ //3행을 출력

System.out.print(j+" * " + i + " = " + j*i + "\t");

}System.out.println();

}System.out.println(); // 열을 구분하기 위해서 엔터값을 하나 넣어주었다.

}

//3열 3행이 출력되게 만들었다. 하지만 1단부터 3단까지만 반복될뿐이다.

//j값이 1부터 3까지만 반복되기때문에 1단부터 3단까지만 출력되는것이다.

//그럼 j값을 1부터 9까지 늘어나도록 해보자.

for (int z = 1; z<=9; z+=3){  

for (int i =1; i<=9; i++){ 

for(int j =z; j<=z+2; j++){ 

System.out.print(j + " * " +i + " = " + i*j + "\t");

}System.out.println();

}System.out.println();

}


//우선 z를 1부터 9까지 반복하도록 하였다.

//하지만 z는 3번만 반복해야되기 때문에 증감식을 z+=3으로 넣어주었다.

//그러면 z는 한번돌때 3씩 들어나기때문에 1 -> 4-> 7 -> 10//

//10은 9보다 크기때문에 3번만 반복하고 멈출것이다.

//자 이제 j를 보자.

//j는  첫번째 열에서 1~3까지 두번째는 4~6까지 세번째는 7~9까지

//값을 가져야지 구구단을 완성하게 된다. 

//그럼 열을 시작할때 시작값을 1, 4, 7을 가지도록 해보자.

//1,4,7 위에서 보았다 z가 1 -> 4-> 7 순으로 변하게 되니

//j = z로 초기화 하였다.

//그리고 3번을 반복해야되니 j <= z+2를 조건식으로 주었다.



//3.x에 3을 주면 3단 5를 주면 5단이 출력되게 만들어라.

int x = 5;

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

System.out.println(x + " * " +j + " = " + x*j);

}

//매우 간단하므로 따로 설명 안하겠다.


//4.x에 3을 주면 2,3,4단을 5를 주면 4,5,6단이 출력되게 만들어라.

x = 5;

for (int i =1; i<=9; i++){ 

for(int j =x-1; j<=x+1; j++){ 

System.out.print(j + " * " +i + " = " + i*j + "\t");

}System.out.println();

}

//j반복문을 x-1부터 시작하여서 x+1까지 실행하도록 만들면 된다.



//5.1번 구구단에서 x에 3을 주면 3단까지 5를 주면 5단까지 출력되게 만들어라.

x = 5;

for(int i=1; i<=9; i++){  

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

System.out.print(j+" * " + i + " = " + j*i + "\t");

if(j==x)break;

}

System.out.println(); 

}

//break구문을 활용하면 된다.

//j가 x와 같은 숫자일때 break;

//출력문과의 위치에 따라 조건문이 달라지니 주의하자.


//6.2번 3열3행 구구단에서 x에 3을 주면 3단까지 5를 주면 5단까지 출력되게 만들어라.

//2번구구단


for (int z = 1; z<=9; z+=3){  

for (int i =1; i<=9; i++){ 

for(int j =z; j<=z+2; j++){ 

System.out.print(j + " * " +i + " = " + i*j + "\t");

}System.out.println();

}System.out.println();

}


//여긴 조금 생각을 해야된다.

//위 5번처럼 그냥 j==x일때 break를 하면 반복문이 멈춘것처럼 보이지만

//다음열에서 다시 반복문이 실행된다.

//break는 현재 돌고있는 {} 영역만 빠져나온다.

//다시 말해서 행반복은 break되지만 열반복이 다시 실행되는것이다.

//그러면 break가 될때 열반복까지 빠져나가도록 해야한다.

//문제에서 말했듯이 반복문구에 이름을 정할수 있다.

//열반복을 loop1로 이름을 정해주자.


  loop1: for (int z = 1; z<=9; z+=3){    //열 반복

           for (int i =1; i<=9; i++){ 

         for(int j =z; j<=z+2; j++){  //행 반복

       System.out.print(j + " * " +i + " = " + i*j + "\t");

       if(j==x) break loop1;

}System.out.println();

}System.out.println();

}

 

 //자 j==x일때 loop1을 빠져나가도록 설정하였다.

//맞는거 같지만 틀렸다.

  //3열 3행 구문은 1 * 1 = 1 / 2 * 1  = 2 / 3 * 1  =3

//이런식으로 출력되면서 한줄한줄 내려 오는건데

 //j==x일때 loop1을 빠져나가라고하면

 //만약 x가 2라고 한다면 2가 되는순간 바로 반복문 빠져나가게 되어

 //2*1만 출력하고 난뒤에 반복구문이 종료된다.

 //자 그럼 조건을 하나더 붙혀보자.

x = 5;

  loop1: for (int z = 1; z<=9; z+=3){    //열 반복

           for (int i =1; i<=9; i++){ 

         for(int j =z; j<=z+2; j++){  //행 반복

       System.out.print(j + " * " +i + " = " + i*j + "\t");

       

       if(j == x){

        if(i == 9) break loop1;

        else break;   

        }

}System.out.println();

}System.out.println();

}

//if j == x일때 i가 9이면 loop1반복문을 빠져나가고

//아닐때에는 현재 돌고있는 반복문만 멈추어라.

//이렇게 조건을 주면 2*9까지 출력을 하고난뒤에

//loop1을 빠져나가게 된다.

//또한 현재 돌고있는 반복문을 멈추지 않을경우에는

//그다음단까지 출력이 될수도 있으니 주의 하자.


}}


------------------------------------------------------------------------------------
본 블로그의 글을 퍼가실때 꼬릿말, 퍼가시는곳 주소를 꼭 남겨주세요.

출처 꼭 기재해주시고요. 상업적인 용도의 이용은 절대 금합니다.

혹 프린트를 할 경우 블로그주소와 함께 프린트 해주세요.
허락을 맡지 않고 무단도용을 할경우 법적인 제제가 있을수도 있습니다.
(전 분명히 경고했습니다. 합의같은거 안합니다.)
그리고 혹 무단도용한것을 보신분은 신고해주시면 사례금 챙겨 드리겠습니다.
-----------------------------------------------------------------------------------

'Java > Java_A' 카테고리의 다른 글

Chapter4-3 반복문과 조건문 _&A  (0) 2011.09.21
Chapter4-2 별출력하기 _&A  (0) 2011.09.21
Chapter3-6 Switch문2 _&A  (0) 2011.09.21
Chapter3-5 조건문2 _&A  (0) 2011.09.21
Chapter3-4 조건문 _&A  (0) 2011.09.21

+ Recent posts