-
🎮 [JAVA 자바] #4 | 자바의 조건문과 반복문, 열거형 | enum, if-else, while, switchCS/Java 2022. 4. 16. 23:28
🎮 조건문
- if 문
C언어와 동일
if (조건식 1) { 실행 문장 1; // 조건식 1이 참인 경우 } else if (조건식 2) { 실행 문장 2; // 조건식 2가 참인 경우 } else if (조건식 m) { ............. } else { 실행 문장 n; // 앞의 모든 조건이 거짓인 경우 }
함수 a, b가 있을 때, if ( a() || b() )도 사용 가능 -> a()가 참이면 b() 실행X. 만약 a() && b()일 때, a()가 거짓이면 b()실행X
- switch문
하나의 조건식에 처리해야 하는 경우의 수가 많을 때 유용
break 또는 switch문을 만나면 전체를 빠져나감. break문이 없으면 다음 case문으로 계속 실행
default 생략 가능
switch (조건식) { case 값1: 실행 문장 1; // 실행문장1이 실행문장 2와 같다면 실행문장1과 break 생략 가능 break; // break 생략하면 다음 case도 실행된다. case 값2: 실행 문장 2; break; ... case 값m: 실행 문장 m; break; default: 실행 문장 n; }
* 주의 : 조건식의 결과는 정수, 문자, 문자열이여야 함
* 주의 : case 문의 값은 정수, 문자, 문자열 리터럴만 허용. 실수, 수식, 변수는 허용 X (ex. case a 또는 case a>3 또는 case a==1은 다 오류)
🎮 반복문
- 자바의 반복문
for문, while문, do while문, for-each문
continue문, break문
for-each 제외 C언어와 동일
- for 문
for (초기문; 조건식; 반복 후 작업) { ...작업문... } // example for(int i=0; i<10; i++) { System.out.prinln(i); // 0에서 9까지 출력 }
- while 문
i=0; while(i<10) { // true이면 진행 System.out.print(i); i++; } // 0123456789
- do while 문
i=0; do { // 1번 실행 후 while 들어감 System.out.print(i); i++; } while(i<10); // while문에 ; 찍어주는 거 주의 // a부터 z까지 출력 char c = 'a'; do { System.out.print(c); c = (char)(c+1); } while (c<='z');
- continue와 break
continue : 반복문을 빠져 나가지 않으면서 다음 반복으로 진행 (for문에서는 반복 후 작업으로 가고, while문에서는 조건식으로 간다.)
break : 반복문 하나를 완전히 빠져 나갈 때 사용
- for-each 문
배열이나 enum 타입 객체의 각 원소를 순차적으로 단순 접근
1) 인덱스를 알 필요 없고 2) 원소를 순서대로 읽기만 하는 경우에 사용
int[] array = {1,2,3,4,5}; int sum = 0; for (int e : array) // for-each문 sum += e; /* for문으로 변환 for (int i=0; i<ary.length; i++) sum += ary[i]; */
🎮 열거형
- 열거형
관련된 상수들을 같이 묶어 놓은 것으로, 자바는 타입에 안전한 열거형을 제공 (값과 타입을 모두 비교)
enum 열거형이름 { 상수명1, 상수명2, ... }
클래스명.열거형이름.상수명으로 접근 (Ex. Currency.SIZE.NICKLE)
enum Week { MON, TUE, WED, THU, FRI, SAT, SUN }; Week w = Week.SAT; System.out.println(w+""); System.out.println(w.name() + "=" + w.ordinal()); // string name(), int ordinal() 메서드 switch(w) { case SAT: case SUN: System.out.println("weekends!"); break; default: System.out.println("weekdays"); } Week[] weekAry = Week.values(); // E[] values() 메서드 for (Week day : weekAry) // for-each 사용 System.out.println(day+" "); System.out.println();
* 열거형 메소드
: string name() (ex. w.name()) : 열거형의 상수의 이름을 문자열로 반환
: int ordinal() (ex. w.ordinal()) : 열거형 상수가 정의된 순서 반환 (0부터 시작)
: E[] values() (ex. Week[] weekAry = Week.values()) : 열거형 상수를 배열로 반환
'CS > Java' 카테고리의 다른 글