티스토리 뷰
728x90
서문
자바의 정석 기초편 챕터 4편을 기재합니다.
목적은 공부한 내용을 기록하는 것에 있기 때문에 완전한 문장이 아닐 수도 있습니다.
- 참고 자료
본문
자바의 정석 ( CH.4 )
조건문과 반복문
조건문(if문, if-else, if-else if-else, 다양한 조건들)
- 조건을 만족할 때 {}안에 있는 식을 수행
int score = 11;
if (score > 10){
System.out.println("합격입니다.")
System.out.println("축하드립니다.")
} else {
System.out.println("불합격입니다.")
System.out.println("좋지 않은 소식을 보내드려 죄송합니다.")
}
> 합격입니다.
> 축하드립니다.
-----------------------------------------
int score = 91;
if (score > 90){
System.out.println("A");
} else if (score > 80){
System.out.println("B");
} else if (score > 70){
System.out.println("C");
} else {
System.out.println("D");
}
> A
switch 문
- 처리해야 하는 경우의 수가 많을 때 유용한 조건문
- 제약조건
- switch문의 결과값은 정수 또는 문자열이어야 한다.
- case문의 값은 정수 상수(문자포함), 문자열만 가능하다. 중복되지 않아야 한다.
switch (조건식){
case 값1:
// 조건식의 결과값이 값1일 때 실행되는 곳
break // break가 없으면 default까지 내려가기 때문에 break를 해야함
case 값2:
break
case 값3:
break
default: // 생략가능
// 조건식의 결과와 일치하는 부분이 없을 때 이 부분이 실행
}
-------------------------------------------
int num, result;
final int ONE = 1;
...
switch(result){
case '1': // ok, 문자 리터럴(정수 49와 동일)
case ONE: // ok, 정수 상수
case "YES": // ok, 문자열 리터럴, JDK 1.7이상부터
case num: // error, 변수는 불가
case 1.0: // error, 실수도 불가
...
}
------------------------------------------
class Ex{
public static void main(String[] args){
System.out.println("현재 월을 입력하세요");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt(); //화면을 통해 얻은 숫자를 입력받음
switch(month){
case 3:
case 4:
case 5:
System.out.println("현재의 계절은 봄입니다.");
break;
case 6: case 7: case 8:
System.out.println("현재의 계절은 여름입니다.");
break;
case 9: case 10: case 11:
System.out.println("현재의 계절은 가을입니다.");
break;
default:
System.out.println("현재의 계절은 겨울입니다.");
}
}
}
임의의 정수 만들기
- Math.random() : 0.0과 1.0사이의 임의의 double 값을 만들어 줌
- 0.0 <= Math.random() < 1.0
- 0.0 * 3 <= Math.random() * 3 < 1.0 * 3
- 0.0 <= Math.random() * 3 < 3.0
- (int) 0.0 <= (int)(Math.random() * 3) < (int)3.0
// ex) 1~10의 값을 10개 추출해라
int num = 0;
for (int i = 1; i<=10; i++){
System.out.println((int)(Math.random()*10)+1); // 1~10범위의 난수 10개 출력
}
반복문
- for문 : 조건을 만족하는 동안 블럭{}을 반복
- 중첩for문 : for문을 중첩하여 사용하는 형태
for(초기화;조건식;증감식){
참일 때 수행되는 부분
}
for(int i=1;i<=10;i++){
System.out.println(i)
}
for (int i=1, j=10;i<=10;i++,j--){ // 두 변수를 사용할 수 있으며 이 때는 두 변수의 타입이 같아야 함
System.out.println(i,j)
}
for (;;){
System.out.println("무한반복");
}
// 중첩for문을 사용하여 별 찍기
for (int i = 1; i<=5; i++){
for (int j=1; j<=10; j++){
System.out.print("*");
}
System.out.println();
}
while 문
- 조건을 만족하는 동안 블럭{}을 반복 - 반복횟수를 모를 때 사용하기 유용
while(조건식){
// 조건식이 참일 때만 수행
}
int i = 1;
while(i <= 10){
i++;
}
break 문
- 자신이 포함된 하나의 반복문을 벗어남
int sum = 0;
int i = 0;
while(true){
if (sum>=100){
break
}
++i;
sum += i
}
continue 문
- 자신이 포함된 반복문의 끝으로 이동, continue의 아래에 있는 코드는 실행하지 않고 다음 반복문으로 넘어감
for (int i = 1; i<=10; i++){ if (i % 2 == 0){ continue } System.out.println(i); }
이름붙은 반복문
- 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있음
Loop1 : for (int i=1; i<=10; i++){
for (int j=1; j<=10 j++){
if (j == 5){
break Loop1;
// continue Loop1;
}
}
}
- 자바의 정석 챕터 4에서는 조건문과 반복문에 대해서 배웠습니다.
댓글