티스토리 뷰
4.1 코드 실행 흐름 제어
- main()메서드의 시작{에서 끝}까지 위에서부터 아래로 실행
- 제어문: 개바자가 원하는 방향으로 바꿀 수 있도록 해주는 것
- 제어문 안에서 또 다른 제어문을 사용할 수도 있음
조건문 | 반복문 |
---|---|
if문 | for문 |
switch문 | while문, do-while문 |
4.2 if문
- 조건식의 결과에 따라 블록 실행 여부 결정
- 조건식은 true/false 산출할 수 있어야 한다.
- true면 실행, false면 실행하지 않음
- {} 실행문이 하나면, 중괄호 생략 가능하지만 한 줄만 인식하기 때문에 조심해야 한다.
int score = 93;
if (score >= 90) {
System.out.println("90보다 큽니다");
System.out.println("A");
}
if (score < 90)
System.out.println("90보다 작습다"); // {}가 없을 경우 조건문은 1행만 인식하기 때문에 실행 안 함
System.out.println("B"); // 인식되지 않아 실행 됨
- 여러 개의 조건식 중 true가 되는 블록만 실행하고 전체 if문을 벗어난다.
int score = 75;
if (score >= 90) {
System.out.print("90보다 큼");
} else if (score >= 80) {
System.out.print("80보다 큼");
} else if (score >= 70) {
System.out.print("70보다 큼");
} else {
System.out.print("70보다 작");
}
- 중첩 if문: 분석하기 어려워진다는 단점이 있음
int score = 85;
if (score >= 90) {
System.out.print("90보다 큼");
if (score >= 95) {
System.out.println("A+");
}
} else if (score >= 80) {
System.out.print("80보다 큼");
if (score >= 85) {
System.out.println("B+");
}
} else if (score >= 70) {
System.out.print("70보다 큼");
if (score >= 75) {
System.out.println("C+");
}
} else {
System.out.print("70보다 작음");
if (score >= 65) {
System.out.println("D+");
}
}
4.3 switch 문
- if문은 경우의 수가 많아질 수록 코드가 복잡해짐
- switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 if문보다 코드가 간결해짐
- default 생략 가능
int number = (int) (Math.random() * 10) + 1;
switch (number) {
case 1: {
System.out.print("1");
break;
}
case 2: {
System.out.print("2");
break;
}
case 3: {
System.out.print("3");
break;
}
case 4: {
System.out.print("4");
break;
}
default:
System.out.print("5~10");
break;
}
- break는 다음 case를 실행하지 않고 switch문을 빠져 나가게 해주고 없으면 다음 case도 연달아 실행된다.
char grade = 'b';
switch (grade) {
case 'a':
case 'b':
System.out.println("우수 회원");
break;
case 'c':
System.out.println("일 회원");
break;
default:
System.out.println("손");
}
}
/*
우수 회원
일 회원
손님
모든 case가 출력됨
*/
4.4 for문
- 똑같은 실행문을 반복적으로 실행해야 할 때 사용
- 조건식을 평가해서 true면 실행하고 false면 for문을 종료하고 빠져 나간다.
- 부동소수점 방식의 float는 사용하지 않는 것이 좋다.(부동소수점 방식이라 오차가 조금 발생하기 때문)
int sum = 0;
// 1부터 시작해서 10번 반복하도록 설정
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println(sum);
4.5 while문
- 처음 실행될 때 먼저 조건식을 평가해서 조건식이 true일 때 반복하고 false면 while문을 빠져 나간다.
int i = 1;
// i를 1씩 증가시켜, 10 이하면 반복하고 11이 되면 빠져 나가도록 한다.
while (i <= 10) {
System.out.println(i);
i++;
}
4.6 do-while문
- while문은 조건식을 먼저 평가하지만 do-while문은 실행문을 먼저 실행한 후에, 조건식을 평가한다.
- While() 뒤에 ;을 꼭 써야 한다.
Scanner inScanner = new Scanner(System.in);
String inputString;
// 먼저 문자를 입력 받는다.
do {
inputString = inScanner.nextLine();
System.out.println(inputString);
// 그 후에 q인지 아닌지를 판단하여 계속할지 빠져나갈지를 결정
} while(!inputString.equals("q"));
4.7 break문
- 반복문을 실행 중지하거나 조건문을 종료할 때 사용
- 반복문이 중첩되어 있을 때는 가장 가까운 반복문만 종료
- 반복문에 Label붙이고 break label 이름; 을 사용하면 Label이 붙은 반복문이 종료된다.
while (true) {
int number = (int)(Math.random() * 6) + 1;
System.out.println(number);
// 랜덤 숫자가 6이 나오면 while문을 종료하고 아래의 종료 프린트문을 출력
if (number == 6) {
break;
}
}
System.out.println("종료");
4.8 continue문
- 반복문에서만 사용
- continue아래 부분은 실행되지 않고 바로 증감식 또는 조건식으로 돌아간다.
for(int i = 1; i <= 10; i++) {
// 짝수일 때는 아래의 프린트문은 실행되지 않고 다시 증감식으로 돌아간다.
if(i % 2 == 0) {
continue;
}
// 홀수만 출력ㄱ
System.out.println(i);
}
'도서 및 강의 > 이것이 자바다' 카테고리의 다른 글
이것이 자바다 3판 챕터 6 (0) | 2024.08.26 |
---|---|
이것이 자바다 3판 챕터 5 (0) | 2024.08.25 |
이것이 자바다 3판 챕터 3 (0) | 2024.08.25 |
이것이 자바다 3판 챕터 2 (0) | 2024.08.25 |
이것이 자바다 3판 챕터 1 (0) | 2024.08.25 |
최근에 올라온 글