티스토리 뷰
Day 5. 반복문
02.22 반복문에 대해서 배웠습니다.
( 주말 개인적인 사정으로 너무 늦게 포스팅하게 되었습니다..)
이번 강의엔 소스위주로 설명하셔서 소스에 주석으로 부가설명을 달아서 해뒀습니다.
<반복문>
for문, while문, do-while문 (while문, do-while문은 나중에 제대로 다루신다 하셨습니다.)
(for문은 반복 횟수를 알고 있을때 주로 사용하고,
while문은 조건에 따른 반복을 할때 주로 사용하신다 하셨습니다.)
false |----> exit
형식: |
for (초기식; 조건식; 증감식) { // 초기식 --> 조건식 --> 수행문 --> 증감식
수행문; | ^ true |
} |ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ|
1 2 3 4 5 6 7 8 | public class ForDemo1 { public static void main(String[] args) { for (int i=1; i<=5; i++) { // for문의 i=1;은 붙여서 쓰기. System.out.println(i + "번째 실행"); } } } | cs |
위 소스를 실행하면,
1번째 실행 <<<<<< 왼쪽에 보이는 바와 같이 출력이 됩니다.
2번째 실행 4행에서 초기식 i=1부터 시작해서 i++인 1씩 증가하여,
3번째 실행 i<=5, i가 5가될때까지 for문안에있는 수행문을 수행시키는 것입니다.
4번째 실행 5행의 처음 수행될때는 i가 1, 두번째에는 i가2 이되서 왼쪽과 같이
5번째 실행 결과값이 나오는 것이죠.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class ForDemo2 { public static void main(String[] args) { int total = 0; for ( int i=1; i<=10; i+=2) { System.out.println(i); total = total + i; } System.out.println("합계 : " + total); } } |
1 2 3 4 5 6 7 8 9 10 11 | public class ForDemo5 { public static void main(String[] args) { for (int i=1; i<=10; i++) { System.out.println(i); if (i == 6) { break; } } } } |
같은 원리로,
1 2 3 4 5 6 7 8 9 10 11 | public class ForDemo6 { public static void main(String[] args) { for (int i=1; i<=10; i++) { if (i == 6) { continue; // 수행할 문장이 남아있어도 새 반복을 하러 넘어간다. } System.out.println(i); } } } | cs |
for문을 잘 이해하셨다면, 구구단 출력 프로그램을 만들 수 있습니다.
--이중for문
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class ForDemo9 { public static void main(String[] args) { for (int x=1; x<=2; x++) { //System.out.println("바깥쪽 for문의 수행문"); System.out.println("["+x+"]"); for (int y=1; y<=3; y++) { //System.out.println("안쪽 for문의 수행문"); System.out.println("{"+x+"}{"+y+"}"); } } } } |
이중for문은 for문 안에 for문을 넣는 것 입니다.
실행 결과를 보면,
---------- 실행 ----------
[1] // 이렇게 x가 1일때 y를 전부 반복하고
{1}{1} // x가 2일때 y를 전부 반복합니다.
{1}{2}
{1}{3}
[2]
{2}{1}
{2}{2}
{2}{3}
이중for문을 완벽히 이해하신다면, 구구단 출력프로그램을 만드실 수 있게 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class ForDemo11 { public static void main(String[] args) { // 구구단 세로로 출력 for (int a=1; a<=9; a++) { for (int dan=2; dan<=9; dan++) { System.out.print(dan + " * " + a + " = " + (dan*a) + "\t\t\t\t\t"); if (dan*a < 10) { System.out.print(" "); } } System.out.println(); } } } | cs |
위 소스는 제가 만든 구구단 출력 프로그램입니다. 참조하시고 직접 만들어 보세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class ForDemo13 { public static void main(String[] args) { int x = 0; int y = 0; for (x=1; x<=6; x++) { for (y=1; y<=x; y++) { System.out.print(x); } System.out.println(""); } } } | cs |
7행에서 x가 1부터 6까지 반복을하고,
그안에서 8행인 y가 1에서 x까지 반복을 하는데
그 수행문이 9행입니다. x출력이죠. 이 말은
x가 1일때 y는 1로 x한번 출력,
x가 2일때는 y가 1로 x=2를 두번 출력하게됩니다.
출력후 11행은 줄을 바꾸게 되죠. 그렇다면 결과값은
---------- 실행 ----------
1
22
333
4444
55555
666666
이렇게 나오게 됩니다.
코딩tip!
tip! 변수의 범위 ( 가능한 한, 좁게 쓰는게 좋다.
필요한 영역 내에서 위주로 )
: 변수가 생성된 그 블록내에서만 유효하다.
ex) a { // aaaaa는 a에서 사용할 수 없다.
bbbbb; // bbbbb는 a, b, c에서 사용할 수 있다.
b {
aaaaa;
c {}
}
}
ex2) for문 예외 case
for (int i=0; i<=5; i++){
// i는 이 곳에서만 사용 가능.
}
--난수 (소스 첨부)
Math = 수학의 유용한 기능들을 모아놓은 API
Math.random(); : 0보다 크고 1보다 작은 임의의 실수를 만들어내는 것
Math.random()*45; : 0 < ~ < 45
Math.random()*45 + 1; : 1 < ~ < 46
1 2 3 4 5 6 7 8 9 | public class ForDemo10 { public static void main(String[] args) { for ( int i=1; i<=6; i++) { int number = (int) (Math.random()*45 + 1); // Math.random(); : 0보다 크고 1보다 작은 임의의 실수를 만들어내는 것 System.out.println(number); // Math.random()*45; : 0 < ~ < 45 } // Math.random()*45 + 1; : 1 < ~ < 46 } // } | cs |
5행은 랜덤으로 숫자를 뽑아주는 키워드입니다. 주석과 첨부한 소스파일들을 참고해주세요.
--향상된 for문 // 다음 시간에 자세히 다루도록 하겠습니다.
for (타입 a : 반복될 배열) {
a 배열을 담는 그릇(변수) (소스참조)
}
소스파일을 위주로 설명을 하다보니 포스팅 양이 훅 줄어드는 것 같습니다.
다음 포스팅엔 좀 더 살을 붙여보도록 하겠습니다.
아래 첨부 파일 소스안에 주석들이 설명이 잘 되있으니 참조해주세요.
'Programming > JAVA' 카테고리의 다른 글
JAVA Web#7 Day 7 자바의 클래스 (0) | 2019.03.03 |
---|---|
JAVA Web#6 Day 6 자바의 배열 (0) | 2019.02.26 |
JAVA Web#4 Day 4 자바의 연산자2 & 조건문 (0) | 2019.02.21 |
JAVA Web#3 Day 3 자바의 형 변환 & 연산자 (0) | 2019.02.20 |
JAVA Web #2 Day 2 자바의 변수 (0) | 2019.02.20 |
- Total
- Today
- Yesterday
- 태그
- 자바 기초
- 브라캣
- Database
- querybox
- Oracle
- copotter
- 데이터베이스
- 오라클 문법
- 블록엘리먼트
- spring
- 프레임워크
- 비등가조인
- 자바 독학
- jhta
- h#
- html
- API
- 자바
- 강제형변환
- 자바 국비
- inline element
- 중앙HTA
- 스프링
- 인라인엘리먼트
- 국비
- Class
- 이클립스
- sql
- block element
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |