1. 코드 실행 흐름 제어
2. 조건문 ( if문, switch문)
코드 실행 흐름 제어
자바 프로그램을 시작하면 main() 메서드의 시작 중괄호에서 끝 중괄호까지 위에서 아래로 실행하는 흐름을 가지고 있다. 이러한 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것이 제어문이다.
제어문의 종류는 조건문과 반복문이 있다. 조건문에는 if문, switch문이 있고 반복문에는 for문, while문, do-while문이 있다.
if문
조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 변수가 올 수 있다. 조건식이 true이면
블럭을 실행하고 false이면 블럭을 실행하지 않는다.
if(조건식) {
// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}
※ 블럭 { }
여러 문장을 하나로 묶어주는 것
중괄호 { } 블럭은 여러 개의 실행문을 하나로 묶기 위해 작성된다. 조건식이 하나 밖에 없다면 생략이 가능하다.
if(score > 60)
System.out.println("합격입니다."); //if문에 속한 문장
System.out.println("축하드립니다."); //if문에 속한 문장이 아니다.
if - else 문
if문은 else 블럭과 함께 사용되어 조건식의 결과에 따라 실행블럭을 선택한다.
if문의 조건식이 true이면 if문의 블럭이 실행되고, 조건식이 false 이면 else 블럭이 실행된다.
if(조건식){
//조건식이 참(true)일 때 수행될 문장들을 적는다.
}else{
//조건식이 거짓(false)일 때 수행될 문장들을 적는다.
}
if - else if문
처음 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행 블럭을 선택할 수 있다. if 블럭의 끝에 else if문을 붙이면 된다. else if문의 수는 제한이 없으며 여러개의 조건식 중 true가 되는 블럭만 실행하고 전체 if 문을 벗어나게 된다.
else if 블록의 마지막에는 else 블럭을 추가할 수 있는데, 모든 조건식이 false일 경우 else 블럭을 실행하고 if 문을 벗어나게 된다.
if(조건식1) {
}else if(조건식2) { //여러 개의 else if를 사용할 수 있다.
}else{ //마지막은 else블럭으로 끝난다, 어느 조건식도 만족하지 않으면 수행된다. else블럭은 생략가능
}
import java.util.Scanner;
public class IfElseExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score >= 90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A입니다.");
}else if(score >= 80) {
System.out.println("점수가 80보다 작습니다");
System.out.println("등급은 B입니다.");
}else if(score >= 70) {
System.out.println("점수가 70보다 작습니다");
System.out.println("등급은 C입니다.");
}else {
System.out.println("점수가 70미만 입니다.");
System.out.println("등급은 D입니다.");
}
}
}
중첩 if문
if문의 블럭 내부에는 또 다른 if문을 사용할 수 있다. if문만 중첩되는 것이 아니며 if문, switch문, for문, while문, do-while문은 서로 중첩시킬 수 있다.
import java.util.Scanner;
public class IfElseExample {
public static void main(String[] args) {
int score = 0;
char grade = ' ', opt = '0';
System.out.println("점수를 입력해주세요.>");
Scanner sc = new Scanner(System.in);
score = sc.nextInt();
System.out.printf("당신의 점수는 %d 입니다.%n", score);
if(score >= 90) {
grade = 'A';
if(score >= 95) {
opt ='+';
}else if (score< 94) {
opt = '-';
}
}else if(score >= 80) {
grade = 'B';
}if(score >= 88) {
opt = '+';
}else if(score < 84) {
opt = '-';
}else {
grade = 'C';
}
System.out.printf("당신의 학점은 %c%c입니다.%n", grade, opt);
}
}
출력값
점수를 입력해주세요.>
90
당신의 점수는 90 입니다.
당신의 학점은 A+입니다.
swich문
swich문은 if문처럼 조건식이 true일 경우에 블록 내부의 실행문을 실행하는 것이 아니라, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다. 처리해야하는 경우의 수가 많을 때 주로 사용한다.
swich문은 변수의 값에 따라서 실행문을 결정되기 때문에 같은 기능의 if문보다 코드가 간결하다.
swich문은 괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킨다. 만약 괄호 안의 값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행시킨다.
'java' 카테고리의 다른 글
java_3_반복문(for문, while문, do-while문) (0) | 2021.10.23 |
---|---|
java_12_예외처리 (0) | 2021.10.22 |
java_11_인터페이스 (0) | 2021.10.21 |
java_10_final & abstract (0) | 2021.10.21 |
java_9_ 타입 변환 & 강제 타입 변환(Casting) (0) | 2021.10.20 |