* switch ~ case
- 일치하는 정수(byte, short, int, char)를 비교하기 위해서 만들어진 조건문.
- OpenJDK7 (JDK1.7) 버전에서는 "문자열(String)"을 비교할 수 있는 기능이 제공.
- 동작: 입력되는 변수와 일치하는 상수(정수 상수가 정의: 입력되는 변수의 범위로만 사용)를 찾고, 그 아래 모든 case를 수행한다.
- 그 아래에 존재하는 case의 실행을 막을 때에는 break를 사용한다.
(*break 분기문: switch ~case, for, while을 빠져나갈 때)
문법)
switch(변수명){
case 상수 : 수행될 문장들 ... ;
case 상수 : 수행될 문장들 ... ; break; // break는 상황에 따라 기술
.
.
default : 일치하는 상수가 없을 때 실행될 코드들;
}
흐름)
int i = 1;
switch(i) {
case 0 : System.out.println("영");
case 1 : System.out.println("일");
case 2 : System.out.println("이");
default : System.out.println("case 없음.");
}
- switch에 변수는 byte, short, int, char, String
- case의 상수는 입력되는 switch 변수의 범위로만 선언할 수 있다. byte가 들어가면 -128 ~ +127까지 가능.
- 가급적이면 Constant를 사용하여 처리(가독성 향상)
* looping (반복문)
- 코드를 여러 번 반복 실행해야 할 때.
- for, while, do ~ while
* for문)
- 시작과 끝을 알 때 사용.
- 단일 for, 다중 for를 사용할 수 있다.
- for문이 어렵다는 건 귀찮다는 뜻이다!
문법)
for(초기값 ; 조건식 ; 증.감소식){
반복수행될 문장들...
}

- main method에서 처음 입력된 값(args[0])이 구구단의 범위였을 때(2~9) 해당 단의 구구단을 출력(1에서부터 9까지 입력된 값을 곱함 -> 반복의 요소 => for, while, do~while)하는 코드 작성. => 흐름!

- 1에서부터 100까지의 합을 구하기 위한 코드 작성.

* 다중 for
- for문 안에 for문을 정의하는 것.
문법)
for(초기값 ; 조건식 ; 증.감소식){
// 단일 for 영역
for(초기값 ; 조건식 ; 증.감소식){
// 다중 for 영역
}
// 단일 for 영역
}
-> 바깥 for가 한 번 반복할 때, 안쪽 for는 몇 번을 반복하는가?

* 구구단
단 * 수 = 결과
2 * 1 3 * 1 ~ 9 * 1
~ ~ ~ ~
2 * 9 3 * 9 ~ 9 * 9
바깥 for(단)가 한 번 돌 때 안쪽 for(곱해지는 수)는 9번 돈다.
for(int i = 2; i < 10; i++){
for(int j = 1; j < 10; j++){
System.out.prinln(i + "*" + j + "=" + i*j);
}
}
* for의 다양한 형태
* 무한 루프(종료되지 않아야 하는 프로그램을 제작해야 할 때): 시계, 운영체제, 서버 등
문법)
- 증가하는 수를 세는 무한루프
for(초기값; ; 증.감소식){
}
- 증가하는 수를 세지 않는 무한루프
for( ; ; ) {
}
- 무한루프 아래 라인에 코드를 정의하면 실행될 수 없기 때문에 에러가 발생한다.
* 여러 개의 초기값을 가지는 for
- 주의: 조건식은 하나만 설정.
문법)
for(초기값,,,; 조건식; 증감.소식,,,){
}
for(int i = 0, j = -10, k = 100; i < 10; i++, j--, k*=2){
// 변수선언을 여러개 하듯이 초기화 선언을 할 수 있다.
// 모든 변수를 증.감할 필요는 없고 조건에 사용하는 변수만 필수로 한다.
}
* continue
- 반복문 안에서 반복문의 실행을 건너 뛰는 일. (건너 뛰고 증.감소식으로 이동)
- 반복문 안에서 if로 조건을 부여하고 사용한다.
사용법)
for(초기값; 조건식; 증.감소식){
반복수행 문장들...
if(조건){ // 아래의 반복을 수행하지 않는 동작
continue; // 조건에 맞으면 아래의 반복문장을 수행하지 않고 증.감소식으로 이동한다.
}
반복수행 문장들...
}'study > Java' 카테고리의 다른 글
| [sist] 2024.01.10_Java : polymorphism(다형성), constructor(생성자), JVM의 memory, call by value (3) | 2024.02.03 |
|---|---|
| [sist] 2024.01.08_Java : while, variable(변수), method(일) (1) | 2024.02.03 |
| [sist] 2024.01.03_Java : Arguments, Flow Chart, 조건문-if문 (2) | 2024.01.28 |
| [sist] 2024.01.02_Java : Operator(연산자), Package(패키지), Compile(컴파일) (2) | 2024.01.28 |
| [sist] 2023.12.28_Java : Operator(연산자), Radix(진수) (7) | 2024.01.28 |