- 자료출처
생활코딩 by egoing - 자바: https://opentutorials.org/module/516
남궁석의 자바의정석: https://github.com/castello/javajungsuk_basic/
[ 조건문 ]
1. IF 문
- 가장 기본적인 조건문,
1) 조건문 구성: 조건문 / {} 로 구성
if (조건식) {
//조건식이 true 일 때 실행되는 문장
}
ex) int score =70
if ( score > 80 ) {
System.out.println("통과");
}
=========> 실행 x
2) 조건문 예시
90 <= x && x <= 100 | 정수 x 90이상 100이하 |
x < 0 || x> 100 | 정수 x 0보다 작거나 100보다 큼 |
x%3==0 && x%2!=0 | 정수 x를 3으로 나눈 나머지가 0이고, x를 2로 나눈 나머지는 0이 아님 (x는 3의배수 이면서 2의 배수가 아님) |
ch=='y' || ch== 'Y' | 문자 ch가 y 또는 Y |
ch==' ' || ch == '$t' || ch=='$t' | 문자 ch가 공백, 탭, 개행문자 |
'A' <== ch && ch <= 'Z' | 문자 ch가 대문자 |
'a' <== ch && ch <= 'z' | 문자 ch가 소문자 |
'0' <== ch && ch <= '9' | 문자 ch가 숫자 |
str.equals("yes") | 문자열 str 내용이 "yes" (대소문자 구분) |
str.equalsIngorecase("yes") | 문자열 str내용이 "yes" (대소문자 구분x) |
#유의: 등가비교 연산자 "==" ("="아님)
3) 블력 {}": 블럭 뒤에는 ";"를 붙이지 않음
- 블럭 내 문장이 한 문장일때는 블럭 생략가능 / 한 줄로 쓰는 것도 가능
if(score>60) {
System.out.println("합격입니다");
}
====>
if(score>60) System.out.println("합격입니다");
4) if -else 문: 블럭의 값이 거짓일 떄 else블럭의 문장 수행
if (조건식) { 조건식이 참 일때 수행
} else { 조건식이 거짓일 때 수행
}
5) else - if else if
if (조건식a) {조건식a가 true일 때 수행}
} else if (조건식b) { 조건식 a 가 false 이고 b가 true일 때 수행}
} else if (조건식c) {조건식 a,b가 false 이고 c가 true 일 때 수행}
} else { 조건식 a,b,c가 모두 false일 때 수행, 생략가능
}
===>조건식 a 부터 차례대로 평가하여 true가 되는 문장을 만나면 해당 블럭만 수행하고 if~if else 문을 벗어남
참인 조건식이 하나도 없으면 else 블럭을 수행, else 블럭은 생략가능
6) 중첩의 if 문
if (조건식 a) { 조건식 a가 true일 때 수행
if 조건식 b { 조건식 a 가 true 이면서, b도 true일 때 수행
} else { 조건식 a가 true 이면서 b는 false 일 때 수행
}
} else {조건식 a가 false일 때 수행
}
2. switch 문:
1] 조건식 계산
2] 조건식 결과와 일치하는 case로 이동
3] 이후 문장 수행
4] break문이나 switch 문의 끝을 만나면 switch 문을 빠져나감
switch (조건식) {
case 값 1 :
// 조건식의 결과가 값1과 같을 경우 수행 //
break;
case 값 2:
// 조건식의 결과가 값2과 같을 경우 수행 //
break;
case 값 3:
// 조건식의 결과가 값3과 같을 경우 수행 //
break;
default : 조건식의 결과와 일치하는 case문이 없을 경우 수행
2) switch 문의 제약조건:
-결과값은 반드시 정수, case 문의 값 역시 정수
- case문은 중복 불가
- case문의 값은 반드시 상수 (변수, 실수는 case문의 값으로 사용 불가)
3) switch 문/ if 문 예제
결과값 3,4,5 "봄", 6,7,8 "여름", 9,10,11 "가을", 12,1,2 "겨울"
[1] if 문
int month = ?;
if (month==3 || month==4 || month==5) {
System.out.println("봄");
} else if ( month==6 || month==7 || month==8) {
System.out. println("여름");
} else if ( month==9 || month==10 || month==11) {
System.out. println("가을");
} else {
System.out. println("겨울");
}
[2] switch 문
int month = ?;
switch (month){
case 3:
case 4:
case 5:
System.out.println("봄");
break;
case 5: case 6: case 7:
System.out.println("여름");
break;
case 8: case 9: case 10:
System.out.println("가을");
break;
default:
System.out.println("겨울");
}
[ 반복문 ]
: for, while문 (상호 변환가능), 반복횟수를 알고 있을 시 for, 반복횟수를 모를 시 while
1. for 문
1) 구조
for ( [1]초기화; [2]조건식; [4]증감식) {
// [3]조건이 true인동안 수행되는 문장
}
* 실행순서: [1] -> [2] -> [3] -> [4]
2) 초기화: 맨 처음 한 번만 수행, 둘 이상 변수 필요시 ,로 구분, 변수간 타입 일치 필요
for (int i =1; i<=10; i++) { }
두개 이상 변수 (,)
for (int i=1, j=0; i<=10, i++) { }
3) 조건식: 조건식이 true인 동안 반복/ 조건식의 값이 true 이면 반복, false 이면 반복 중단, for 문 벗어남
->조건식 작성오류시 for문이 아예 실행되지 않거나 무한루프
4) 증감식
for( int i =1; i<=10, i++) { } // 1~10 1씩 증가
for( int i =10; i<=1, i--) { } // 10~1 1씩 감소
for( int i =1; i<=10, i+=2) { } // 1~10 2씩 증가
for( int i =1; i<=10, i*=3) { } // 1~10 *3씩 증가
두 개 이상 증감식(,)
for (int i=1, j=10 ; i<=10; i++, j--) { }
5) 중첩의 for문
- 별찍기
***********
***********
***********
***********
***********
[1단계]
for ( i=1; i<=5, i++) {
System.out.println(**********);
}
[2단계]
=> for ( i=1; i<=5, i++) {
for (i=1, i<=10, i++) {
System.out. print("*");
}
System.out.println();
}
*
**
***
****
*****
[1단계]
for ( i=1; i<=1, i++) {
System.out.print("*");
}
System.out.println();
for ( i=1; i<=2; i++) {
System.out.print("*");
}
System.out.println();
for ( i=1; i<=3; i++) {
System.out.print("*");
}
System.out.println();
for ( i=1; i<=4; i++) {
System.out.print("*");
}
System.out.println();
for ( i=1; i<=5; i++) {
System.out.print("*");
}
System.out.println();
[2단계]
for ( i=1; i<=1;i++) {
for ( j=1, j=i, j++)
System.out.print("*")
}
System.out.println();
}
2. while 문
1) 구조: 초기화; 조건식 + 블럭; 증감식;
초기화;
while (조건식){
// 조건식의 결과가 true인 동안 반복할 문장
증감식;
}
ex) while 문
int i=1;
while(i<=10) {
System.out.println(i);
i++;
}
ex) for문
for (int i=1; i<=10, i++)
System.out.println(i);
}
- 조건식 참 => 블럭 내 문장 수행 후 다시 조건식으로
-조건식 거짓==> 문장 전체 벗어남
2) do-while 문 : while 문 변형, while 문 조건식<->블럭 순서바꿈
do {
} while ( );
3. break문/ continue문
1) break문: 자신이 포함된 가장 가까운 반복문을 벗어남. switch, while과 함께 사용
2)continue문: 반복문 끝으로 이동하여 다음 반복으로 넘어감, 반복문 내에서만 사용가능
반복문 전체를 벗어나지 않고 다음 반복을 계속 수행함. 전체반복 중 특정조건을 만족하는 조건을 제할 때 사용
ex)
for ( int i=0; i<=10, i++) {
if(i%3==0)
continue;
System.out.println(i);
}
'코딩공부일지 > 자바독학' 카테고리의 다른 글
[자바혼공] 객체지향 후반부 (0) | 2022.08.24 |
---|---|
[자바혼공] 객체지향 개념 / 클래스와 객체, 매서드, 오버로딩, 생성자, 초기화 (0) | 2022.08.05 |
[자바혼공]복습 배열 (0) | 2022.08.03 |
[자바혼공]자바의정석 시작: 변수/ 연산자 (0) | 2022.07.20 |
[자바혼공]자바란? / 숫자와 문자 / 변수 / 주석&세미콜론 (1) | 2022.07.18 |