학습 기록/Java

23.05.10 / Java / 반복문(for문)

SooHw 2023. 5. 10. 21:26

for문

 

예제)

2개의 정수 (base, n) 입력받아

base의 n제곱 출력

		Scanner scan = new Scanner(System.in);

		System.out.print("base 입력 : ");
		int base = scan.nextInt();
		System.out.print("정수n 입력 : ");
		int num1 = scan.nextInt();
		int sum = 1;
		for (int i = 1; i < num1 + 1; i++) {
			sum *= base;
		}
		System.out.println(sum);

* 결과창

base 입력 : 3
정수n 입력 : 4
81

 

예제)

구구단 2단 출력

		int j = 2;
		for (int i = 1; i < 10; i++) {
			System.out.println(j + "*" + i + "=" + (i * j));
		}

* 결과창

2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18

 

 

예제) 

행 개수 입력 받아 하나씩 늘어나는 * 출력

방법1.

		Scanner scan = new Scanner(System.in);

		System.out.print("행 개수 : ");
		int num = scan.nextInt();

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

방법2.

		Scanner scan = new Scanner(System.in);
		
		System.out.print("행 개수 : ");
		int num = scan.nextInt();
		String star = "*";
		for (int i = num; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				System.out.print(star);
			}
			System.out.println("");
		}

 

* 결과창

행 개수 : 8
*
**
***
****
*****
******
*******
********

 

예제)

역피라미드

방법1.

		Scanner scan = new Scanner(System.in);

		System.out.print("행 개수 : ");
		int num = scan.nextInt();
		String star = "*";
		for (int i = num; i >= 0; i--) {
			for (int j = 0; j < i + 1; j++) {
				System.out.print(star);
			}
			System.out.println("");
		}

방법2.

		Scanner scan = new Scanner(System.in);

		System.out.print("행 개수 : ");
		int num = scan.nextInt();
		String star = "";
		for (int i = num; i >= 0; i--, num--) {
			for (int j = num; j >= 0; j--) {
				star += "*";
			}
			System.out.println(star);
			star = "";
		}

 

*방법 2.

for문 안의 변수 star의 변한 값은 for문 밖에서도 유지됨.

그래서 star를 출력하고 다시 변수 star의 값을 초기화해주었음

 

*결과창

행 개수 : 8
*********
********
*******
******
*****
****
***
**
*

 

예제) 

피라미드 반전


		int num = 5;
		String star = "*", emp = " ";
		for (int i = 0; i < num; i++) {
			for (int j = 1; j <= num - i; j++) {
				System.out.print(emp);
			}
			for (int j = 0; j <= i; j++) {
				System.out.print(star);
			}
			System.out.println();
		}

* 결과창

     *
    **
   ***
  ****
 *****

 

예제) 

피라미드

방법1.

		int num = 5, num2 = 0;
		String emp = " ", star = "*";
		for (int i = num; i > 0; i--) {
			for (int j = 0; j < i; j++) {
				System.out.print(emp);
			}
			for (int j = num - 1; j < num; j++, num2--) {
				if (num2 == 0) {
					System.out.print(star);
				} else {
					star += "**";
					System.out.print(star);

				}
				System.out.println("");
			}
		}

방법2.

		int num = 5;
		String emp = " ", star = "*";
		for (int i = 0; i < num; i++) {
			for (int j = 1; j <= num - i; j++) {
				System.out.print(emp);
			}
			for (int j = 0; j < (i * 2 + 1); j++) {
				System.out.print(star);
			}
			System.out.println();
		}

 

둘다 출력은 같지만 방법1은 구색을 맞춘느낌, 방법2는 패턴을 이해하고 식을 적용시킴

* 방법1을 먼저 해보고 다른 방식을 검색해 방법2 코드를 작성함, 공부가 많이 되었다.

 

*출력문

     *
    ***
   *****
  *******
 *********

'학습 기록 > Java' 카테고리의 다른 글

23.05.15 / Java / 2차원 배열  (0) 2023.05.29
23.05.12 / Java / array  (0) 2023.05.12
23.05.09 / Java / 반복문  (0) 2023.05.09
23.05.08 / Java / 반복문(while)  (0) 2023.05.08
23.05.04 / Java / 조건문(if문)  (0) 2023.05.07