Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 알고리즘
- do~while문
- Java
- 부모 생성자
- 추상화
- 생성자
- 국비지원
- 캐스팅연산자
- 프로그래머스
- Calendar Class
- 코딩
- 상속
- 비전공자
- AoutoBoxing
- 자바
- userDefineException
- 예외던지기
- 사용자 정의 예외처리
- 취준생
- super 생성자
- 개발
- 백앤드
- Date Class
- exception
- 클래스의구조
- for문
- 독학
- 예외처리
- 개발자
- 가위바위보프로그램
Archives
- Today
- Total
유난스런 개발 기록
[JAVA] Day-7 _ 중첩 반복문 본문
day-7
반복문
중첩반복문이란?
- 반복문 안에 또 다른 반복문을 작성하는 것을 말한다.
- 대표적인 예제로 구구단이 있다.
사실 중첩반복문은 for문을 이해했다면 크게 어렵지 않다.
오늘은 구구단을 네단씩 끊어서 출력하는 문제를 풀고 마무리하겠다.
System.out.println("=== 구구단 4단씩 끊기 ===");
for(int dan=2; dan<10; dan+=4) { // 4개씩 끊기
// 2단 부터 시작해서 5단 까지 하는 것,
// 6단 부터 시작해서 9단 까지 하는 것.
for(int jul=1; jul<=9; jul++) { // jul은 단마다 곱해지는 수이다.
for(int i=dan; i<(dan+4); i++) {
System.out.print(i+"*"+jul+"="+(i*jul)+"\t");
}// end of for----------------------------
System.out.print("\n");
}// end of for----------------------------
System.out.print("\n");
}// end of for----------------------------
네개의 단씩 끊기 위해서 가로로, 즉 행을 먼저 출력하는 방법을 생각했다.
예를 들어 2단을 2*1, 2*2, 2*3 ... 8*1, 8*2, 8*3 ... 9*1, 9*2...9*9 까지의 의 순서가 아닌
2*1, 3*1, 4*1 ... 8*1, 9*1의 형식으로 출력하는 것이다.
네개의 단씩 끊어주기 위해서 내부 for문 조건식에 i가 해당 변수 dan+4 보다 작을 때까지로 설정했다
이후 출력문에 \n을 통해 줄바꿈을 해주면 다음 행의 출력으로 넘어갈 수 있다.
출력 결과는 다음과 같다.
/*
=== 구구단 4단씩 끊기 ===
2*1=2 3*1=3 4*1=4 5*1=5
2*2=4 3*2=6 4*2=8 5*2=10
2*3=6 3*3=9 4*3=12 5*3=15
2*4=8 3*4=12 4*4=16 5*4=20
2*5=10 3*5=15 4*5=20 5*5=25
2*6=12 3*6=18 4*6=24 5*6=30
2*7=14 3*7=21 4*7=28 5*7=35
2*8=16 3*8=24 4*8=32 5*8=40
2*9=18 3*9=27 4*9=36 5*9=45
6*1=6 7*1=7 8*1=8 9*1=9
6*2=12 7*2=14 8*2=16 9*2=18
6*3=18 7*3=21 8*3=24 9*3=27
6*4=24 7*4=28 8*4=32 9*4=36
6*5=30 7*5=35 8*5=40 9*5=45
6*6=36 7*6=42 8*6=48 9*6=54
6*7=42 7*7=49 8*7=56 9*7=63
6*8=48 7*8=56 8*8=64 9*8=72
6*9=54 7*9=63 8*9=72 9*9=81
*/
for문의 구조를 이해하면 어렵지 않게 풀 수 있는 문제다.
선생님 말로는 이 문제의 출처가 다른 제자 분의 회사 면접 손코딩 문제였다고 한다...
설마 이거 하나만 풀게 했을까...? 궁금하다
'개념정리 > JAVA' 카테고리의 다른 글
[JAVA] Day-9 _ 배열 (Array) (0) | 2023.01.19 |
---|---|
[JAVA] Day-8 _ Math.random() 난수 생성하기 (0) | 2023.01.18 |
[JAVA] Day-7 _ 반복문 (for, while, do~while) (0) | 2023.01.18 |
[JAVA] Day-6 _ 조건문(if문, if else문, else if문, switch문) (0) | 2023.01.12 |
[JAVA] Day-5 _ Math Class로 반올림 (0) | 2023.01.12 |