728x90
반응형
⚠️ 유튜브 정리
1. 조건문 - if, switch
- 조건문: 조건을 만족할 때만 {}(블록)을 수행(0~1번)
if (score > 60) { System.out.println("합격입니다."); System.out.println("축하드립니다."); }
- 반복문: 조건을 만족하는 동안 {}을 수행(0~n번)
이 둘을 합쳐 제어문이라고 한다.int i = 10; while (i-- >0 ) { System.out.println(i); }
1.1 if문
- 조건식이 참(true)일 때, {}안의 문장을 수행한다.조건식에는 true이거나 false인 문장을 사용해야한다.
- if (조건식) { // 조건식이 참(true)일 때 수행될 문장들을 적는다. }
- 블럭{}: 여러 문장을 하나로 묶어주는 것
- if (조건식) { // 블럭 시작 System.out.println(); // 들여쓰기 해주는 것이 읽기 좋음 } // 블럭 끝 if (조건식) System.out.println(); // 제어문 내 문장이 하나일 경우 블럭 생략 가능 System.out.println("etc"); // 제어문에 포함X
- if-else문: 둘 중 하나 - 조건식이 참일 때와 거짓일 때로 나눠서 처리
if (조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
} else {
// 조건식이 거짓(false)일 때 수행될 문장들을 적는다.
}
if (input == 0) {
System.out.println("0입니다.");
}
if (input != 0) {
System.out.println("0이 아닙니다.);
}
⬇️
if (input == 0) {
System.out.println("0입니다.");
} else {
System.out.println("0이 아닙니다.");
}
- if-else if문: 여러 개 중 하나 - 여러 개의 조건식을 포함한 조건식
if (조건식) { // 조건식1의 연산결과가 참일 때 수행될 문장들을 적는다. } else if (조건식2) { // 조건식2의 연산결과가 참일 때 수행될 문장들을 적는다. } else if (조건식3) { // 조건식3의 연산결과가 참일 때 수행될 문장들을 적는다. } else { // 마지막은 보통 else블럭으로 끝나며, else블럭은 생략가능하다. // 위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다. }
- 중첩 if문: if문 안의 if
if (조건식1) { // 조건식1의 연산결과가 참일 때 수행될 문장들을 적는다. if(조건식2) { // 조건식1과 조건식2가 모두 true일 때 수행될 문장들 } else { // 조건식1이 참이고, 조건식2가 거짓일 때 수행될 문장들 } } else { // 조건식1이 거짓일 때 수행될 문장들 }
1.2 switch문
- switch: 처리해야 하는 경우의 수가 많을 때 유용한 조건문
switch(조건식) {
case 값1:
// 조건식의 결과가 값1과 같을 경우 수행될 문장들
...
break; // switch문을 벗어난다.
case 값2:
// 조건식의 결과가 값2과 같을 경우 수행될 문장들
...
break;
default: // 생략 가능
// 조건식의 결과가 일치하는 case문이 없을 때 수행될 문장들
...
}
- switch문의 흐름
- 조건식을 계산한다.
- 조건식의 결과와 일치하는 case문으로 이동한다.
- 이후의 문장들을 수행한다.
- break문이나 switch문의 끝을 만나면 switch눙 전체를 빠져나간다.
- switch문의 제약조건
- switch문의 조건식 결과는 정수 또는 문자열(jdk 1.7이상)이어야 한다.
- case문의 값은 정수, 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야 한다. 즉, 변수, 실수는 불가능
- 임의의 정수(난수) 만들기
- Math.random(): 0.0과 1.0사이의 임의의 double값을 반환1~3 범위의 임의의 정수를 만들려면
0.0 <= Math.random() < 1.0
0.0 * 3 <= Math.random() * 3 < 1.0 * 3
0.0 + 1 <= Math.random() + 1 < 3.0 * 1
(int)1.0 <= (int)Math.random() < (int)4.0
1 <= Math.random() < 4
- Math.random(): 0.0과 1.0사이의 임의의 double값을 반환1~3 범위의 임의의 정수를 만들려면
2. 반복문
2.1 for문
- for: 조건을 만족하는 동안 {}을 반복 - 반복횟수를 알 때 적합
for (초기화; 조건식; 증감식) {
수행될 문장
}
// 예시
for (int i = 0; i < 3 ; i++) {
System.out.println("Hello");
}
// 모든 식을 생략하면 true로 간주되어 무한반복문이 됨
for (;;) {
System.out.println("Hello");
}
- 중첩 for문: for문 내에 또 다른 for문을 포함시킬 수 있다.
// 예시: 구구단
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.println(i + " * " + j + " = " + i * j);
}
System.out.println();
}
2.2 while
- while: 조건을 만족시키는 동안 {}을 반복 - 반복횟수 모를 때
while(조건식) {
// 조건식의 연산결과가 참인 동안 반복될 문장
}
for (int i = 0; i <= 10; i++) {
System.out.println(i);
}
int i = 0;
while (i <= 10) {
System.out.println(i);
i++;
}
- while의 무한반복문
while(true) {
// 계속 실행
}
- do-while: {}을 최소한 한 번 이상 반복 - 사용자 입력받을 때 유용
do {
// 조건식의 연산결과가 참일 때 수행될 문장들을 적는다.(처음 한 번은 무조건 실행)
} while(조건식);
2.3 break, contiue
- break: 자신이 포함된 하나의 반복문을 벗어난다.
while(true) {
if(조건식) {
break; // 무한반복하다가 조건식이 참이 되면 반복문을 벗어남.
}
}
- continue: 자신이 포함된 반복문의 끝으로 이동 - 다음 반복으로 넘어감.
전체 반복 중에서 특정 조건시 반복을 건너뛸 때 유용
for (int i = 0; i <= 10; i++) {
if (i % 3 == 0) {
continue;
}
system.out.print(i + " ");
}
// 결과: 1 2 4 5 7 8 10
- 이름 붙은 반복문: 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.
Loop: for (int i = 0; i <= 10; i++) {
for (int j = 0; j <= 2; j++) {
// 반복되는 문장
break Loop; // 바깥 for문이 멈춤
breka; // 안쪽 for문이 멈춤
continue Loop; // continue문에도 사용 가능
}
}
728x90
반응형