JAVA/Java 기초

반복문 (while 문)

  • 기초
int i=0; //초기식

while (i<10) { //조건식
	System.out.println(i);	//반복하고 싶은 실행문
	i++; //증감식
}
		
//while문을 for문으로 바꾸기
for (int i = 0; i < 10; i++) {
	System.out.println(i);
}

 

  • 무한루프
while(true) {}

- while문에서 많이 쓰임
- 프로그램의 정상적인 실행이 아님
- 무한루프를 빠져나오기 위해서 break 제어문자가 필요하다.

 

  • 1에서 10 중, 홀수만 출력하기
//1.
int i=1;
while(i<=10) {
    System.out.println(i);				
    i+=2;
}

// 2.
int i=1;
while(i<=10) { //조건식
    if(i%2==1) {
        System.out.println(i);
    }
    i++;
}

 

  • 구구단 2,3단 출력
Scanner sc = new Scanner(System.in);

System.out.println("정수를 입력 : ");
int n = sc.nextInt();

switch (n) {
case 2:
    System.out.printf("**** %d단 ****\n", n);
    for (int i = 1; i <= 9; i++) {
        System.out.printf("%d * %d = %d\n", n,i, n*i);
    }
    break;
case 3:
    System.out.printf("**** %d단 ****\n", n);
    for (int i = 1; i <= 9; i++) {
        System.out.printf("%d * %d = %d\n", n,i, n*i);
    }
    break;

default:
    System.out.println("잘못입력했습니다.");
    break;
}

 

  • 구구단
for (int i = 2; i <= 9; i++) {		//행
    for (int j = 1; j <= 9; j++) {	//열
        System.out.printf("%d*%d=%d\n", i,j,i*j);
    }
    System.out.println("***********");
}

 

  • 도형그리기 : 가변적인 도형일 경우, i값을 사용해 j값이 나오도록 공통적인 수식을 짜야한다.
  • 좌하 직각, 우상 직각, 우하 직각 도형
/* 도형그리기 1.
*
**
***
****
*****
*/

for (int i=0; i<5; i++) {	//i 가 기준
    for (int j=0; j<i+1; j++) {
        System.out.print("*");
    }
    System.out.println();
}

/* 반쪽 역삼각형 그리기.
 * *****	i=0, j=5
 *  ****	i=1, j=4
 *   ***	i=2, j=3
 *    **	i=3, j=2
 *     *	i=4, j=1
 */
 
for (int l=0; l<5; l++) {
    for (int m=0; m<5-l; m++) {
        System.out.print("*");
    }
    System.out.println();
}

/* 공백 반쪽 삼각형 그리기.
 *     *	i=0  공백 j=4  별1
 *    **	i=1  공백 j=3  별2
 *   ***	i=2  공백 j=2  별3
 *  ****	i=3  공백 j=1  별4
 * *****	i=4  공백 j=0  별5
 */

for(int i=0; i<5; i++) {	//행 0,1,2,3,4

    for(int j=0; j<4-i; j++) {//공백 4,3,2,1,0
        System.out.print(" ");
    }

    for (int j=0; j<i+1; j++) {	//별 1,2,3,4,5
        System.out.print("*");
    }

    System.out.println();
}

 

  • 반쪽 마름모 도형
/* 반쪽마름모 그리기.
 *     *	i=0  공백 j=4  별1
 *    **	i=1  공백 j=3  별2
 *   ***	i=2  공백 j=2  별3
 *  ****	i=3  공백 j=1  별4
 * *****	i=4  공백 j=0  별5
 *  ****	i=5  공백 j=1  별4
 *   ***	i=6  공백 j=2  별3
 *    **	i=7  공백 j=3  별2
 *     *	i=8  공백 j=4  별1
 */
 
for (int i = 0; i < 9; i++) {	
    if (i<5) {	//별 증가, 공백 감소 //행i: 0,1,2,3,4

        for (int j=0; j<4-i; j++) {//공백 4,3,2,1,0
            System.out.print(" ");					
        }
        for (int j=0; j<i+1; j++) {//별 1,2,3,4,5
            System.out.print("*");
        }

    } else {	//별 감소, 공백 증가	//행i: 5,6,7,8

        for (int j=0; j<i-4; j++) {		//공백 1,2,3,4
            System.out.print(" ");
        }
        for (int j=0; j<i-j; j++) {		//별 4,3,2,1
            System.out.print("*");
        }
    }
    System.out.println();
}

 

  • 마름모 도형 그리기 - 1
for(int i=0; i<7; i++) {	//전체 7행	i = 0,1,2,3
    if(i<4) {
        for(int j=0; j<3-i; j++) {	//공백	j = 3,2,1,0
            System.out.print(' ');
        }
        for(int j=0; j<i*2 +1; j++) {	// *j = 1,3,5,7
            System.out.print('*');
        }
    } else {						//중간 i = 4,5,6
        for(int j=0; j<i-3; j++) {	//공백 j = 1,2,3
            System.out.print(' ');
        }
        for(int j=(7-i)*2; j>1; j--) {	//	 *j = 5,3,1
            System.out.print('*');
        }
    }
    System.out.println();
}

 

  • 마름모 그리기 - 2
for (int i = 1; i <= 7; i++) {

	int k = (i <= 4) ? 4 - i : i - 4;

    for (int j = 1; j <= k; j++) {
        System.out.print(' ');
    }

    for (int j = 1; j <= 7 - 2 * k; j++) {
        System.out.print("*");
    }

    System.out.println();
}
728x90
728x90

'JAVA > Java 기초' 카테고리의 다른 글

배열 연습 1  (1) 2022.05.13
배열(Array)  (0) 2022.05.12
반복문 (break, continue)  (1) 2022.05.11
반복문 연습  (1) 2022.05.11
반복문 (for 문)  (0) 2022.05.10