"만약에 부자가 된다면 어떻게 할거니?" 기분 좋은 상상이신가요? 우리는 살면서 '만약에'라는 단어를 많이 사용합니다. 컴퓨터의 세계에서 '만약에'라는 단어가 존재하는데요. 컴퓨터의 세계에서는 조건문이라고 부릅니다. 이번 시간에는 현대 프로그래밍 언어에서 공통적으로 존재하는 조건문에 대해 배우는 강의입니다. 자바의 조건문을 통해 프로그램의 실행흐름을 바꿀 수 있습니다.
ㅤ
참 또는 거짓을 반환하는 조건식을 작성하려면 기본적으로 논리 연산자에 대해서 알아야 합니다.
논리 연산자는 좌 -> 우로 연산을 하며 참인지 거짓인지 판단합니다. 다만 괄호가 있으면 괄호에 있는 것을 먼저 연산을 합니다.
가장 앞의 true와 false를 OR 연산을 하고 연산의 결과 값과, 그 다음 true와 OR 연산을 하여 true의 값을 반환합니다.
특별한 경우로 AND 연산의 경우 연산자 기준 좌측의 값이 false인 경우는 우측에 있는 값을 확인하지 않습니다. 그 이유는 우측에 있는 값과 상관없이 항상 결과 값은 false이므로 빠른 연산을 위해 생략합니다.
예시로 age 변수가 30인지 동등 비교 연산자를 이용하여 결과값을 확인한 후 false 이면 우측에 있는 weight == 20
연산을 하여 true인지 false인지 확인하지 않고 바로 false를 반환합니다.
연산자 우선 순위에 의해 괄호의 식을 먼저 확인합니다. false && true
연산 시 앞의 값이 false 이므로 바로 false를 반환하고 true와 false를 OR 연산하여 true를 반환합니다.
ㅤ
조건문은 조건식이 참(true)일 때 실행하는 분기 구문으로 프로그램의 실행 흐름을 조건에 따라 실행하거나 또는 실행하지 않도록 할 수 있는 구문입니다.
이러한 조건문에는 if
문과 switch
문이 있으며 조건은 항상 위에서부터 아래로 체크합니다.
ㅤ
if 문은 가장 위에 있는 조건식부터 순차적으로 확인하여 ‘참’인 조건식을 만나면 조건문 내부에 있는 코드를 실행 후 조건문을 탈출합니다.
if
, else if
, else
세 가지 키워드를 사용하거나 생략하는 방식으로 실행흐름을 제어할 수 있습니다.
ㅤ
if - else if - else
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else {
// 두 조건이 다 거짓이면 실행 후 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 번째 조건식이 참이면 두 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 조건이 모두 거짓인 경우 else 내부에 있는 코드를 실행 후 탈출합니다.
if - else
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else {
// 조건이 거짓이면 실행 후 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
조건이 거짓인 경우 else 내부에 있는 코드를 실행 후 탈출합니다.
if
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 조건문을 탈출합니다.
if - else if - else if - else
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else {
// 세 조건이 다 거짓이면 실행 후 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 번째 조건식이 참이면 두 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
세 번째 조건식이 참이면 세 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
세 조건이 모두 거짓인 경우 else 내부에 있는 코드를 실행 후 탈출합니다.
NOTE! else if의 개수는 제한이 없습니다.
if - else if - else if
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 번째 조건식이 참이면 두 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
세 번째 조건식이 참이면 세 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 거짓이어도 조건문을 탈출합니다.
NOTE! else if의 개수는 제한이 없습니다.
int age = 40;
if (60 <= age) {
// age가 40이므로 패스
} else if (50 <= age) {
// age가 40이므로 패스
}
// 밑에 있는 구문을 실행함
이렇게 조건문은 if
와 else if
, else
를 이용하여 프로그램의 실행 흐름을 다양하게 제어할 수 있습니다.
switch
문은 조건값에 따라 특정 case
부터 실행할 수 있도록 하는 구문입니다. 책의 라벨이라고 생각하면 쉽습니다. switch 문은 특정 case부터 아래로 내려가며 코드를 실행하되 break 키워드를 만나면 switch 문을 탈출합니다.
ㅤ
char
byte
short
int
Character
Byte
Short
Integer
String
enum
*Character, Byte, Short, Integer, String, enum은 이후에 배웁니다.
ㅤ
break 키워드 없는 switch 구문
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 아래의 case로 진행
default:
}
만약에 조건값이 '값1'이면
case 값1 -> case 값2 -> case 값3 -> defalult 순으로 실행됩니다.
만약에 조건값이 '값2'이면
case 값2 -> case 값3 -> defalult 순으로 실행됩니다.
만약에 조건값이 '값3'이면
case 값3 -> defalult 순으로 실행됩니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
break 키워드 있는 switch 구문 1
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 아래의 case로 진행
default:
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 -> case 값3 -> defalult 순으로 실행됩니다.
만약에 조건값이 '값3'이면
case 값3 -> defalult 순으로 실행됩니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
break 키워드 있는 switch 구문 2
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 탈출
break;
default:
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 -> case 값3 순으로 실행됩니다.
만약에 조건값이 '값3'이면
case 값3 을 실행 후 break문을 만나 switch 문을 탈출합니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
break 키워드 있는 switch 구문 3
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 탈출
break;
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 탈출
break;
default:
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값3'이면
case 값3 을 실행 후 break문을 만나 switch 문을 탈출합니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
default 키워드 없는 switch 구문
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 탈출
break;
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 탈출
break;
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값3'이면
case 값3 을 실행 후 break문을 만나 switch 문을 탈출합니다.
ㅤ
실습도구에 해당 코드를 작성해 봅시다
ㅤ
ㅤ
코드 작성
int num = 65;
char alphabet;
if (65 == num) {
alphabet = 'A';
} else if (66 == num) {
alphabet = 'B';
} else if (67 == num) {
alphabet = 'C';
} else {
alphabet = '0';
}
System.out.println(alphabet);
출력
A
ㅤ
코드 작성
char locationPrefix = 's';
String location = "어딘지모름";
if ('k' == locationPrefix) {
location = "강남";
} else if ('s' == locationPrefix) {
location = "수원";
}
System.out.println(location);
출력
수원
ㅤ
코드 작성
boolean isToday = true;
if (isToday) {
System.out.print("오늘 ");
}
System.out.println("뭐할까?");
출력
오늘 뭐할까?
ㅤ
ㅤ
코드 작성
int category = 1;
switch (category) {
case 1:
System.out.println(1);
case 2:
System.out.println(2);
case 3:
System.out.println(3);
}
출력
1
2
3
ㅤ
코드 작성
int category = 1;
switch (category) {
case 1:
System.out.println(1);
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
}
출력
1
2
ㅤ
코드 작성
int category = 2;
switch (category) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
}
출력
2
ㅤ
코드 작성
int category = 4;
switch (category) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
default:
System.out.println("기본");
}
출력
기본
ㅤ
삼항 연산자는 if 문을 만들 수 있는 또 다른 방법을 제공합니다.
자료형 변수명 = (조건식) ? 참인 경우 : 거짓인 경우;
예시로 작성해보면 다음과 같습니다.
int num = 65;
char alphabet = (65 == num) ? 'A' : 'B';
조건식이 참인 경우 ‘A’의 값을 반환하고 거짓인 경우는 ‘B’의 값을 반환하며, 반환된 값은 char alphabet 변수에 저장됩니다.
int num = 65;
char alphabet = (65 == num) ? 'A' : (66 == num) ? 'B' : (67 == num) ? 'C' : '0';
삼항 연산자를 연결해서 사용할 수도 있습니다.
삼항 연산자는 특정 상황에서 조건문을 좀 더 간소하게 보여줄 수 있으나, 조건이 많아지면 오히려 코드의 가독성이 떨어지는 문제를 가지고 있습니다.
현업에서는 조건식이 하나인 경우일 때만 사용하는 것이 좋습니다.
boolean isReady = true;
int category = (isReady) ? 1 : 0; // 조건식이 하나일 때만 사용하는 것이 좋다
char locationPrefix = 's'; String location = "어딘지모름"; if ('k' == locationPrefix) { location = "강남"; } else if ('s' == locationPrefix) { location = "수원"; } System.out.println(location); 수원 여기서 질문 있습니다 String location = "어딘지모름"; 이 문장은 왜 있는건가요? 안 쓰인거 맞죠? location은 어딘지모름이였는데 if문을 통해서 location이 수원으로 바뀐건가요? 약간 이해가 안가네요 답변 해주시면 감사하겠습니다ㅜ,ㅜ
안녕하세요. 코드라떼입니다 :) "어딘지모름" 이 문장은 locationPrefix 변수에 저장된 값이 'k' 또는 's'가 아닌 경우 default 값으로 출력하기 위한 값입니다. 만약에 locationPrefix 변수에 저장된 값이 'k'의 경우 location에 저장하는 값이 "강남" 이며 's'의 경우 "수원" 입니다. 감사합니다 :)
switch문 설명해주실 때 'a' 이게 아니라 "a" 쌍따옴표여야지 않나요?? 홀따옴표도 되는 건가요?? 강의를 멈춰놓고 질문을 하러왔는데 띄어쓰기 하려구 스페이스바 누를 때 마다 강의가 켜졌다 꺼졌다가 하네요ㅠㅠㅠㅠ
안녕하세요. 코드라떼입니다 :) switch문에 문자('a')와 문자열("a")도 둘 다 가능합니다. 홀따옴표는 문자를 작성할 때 쌍따옴표는 문자열을 작성할 때 사용됩니다. 'ab'- X 작성 불가 "ab"- O 작성 가능 'a'- O 작성 가능 "a"- O 작성 가능 문자와 문자열은 엄연하게 구분됩니다. 문자는 char 변수에 저장할 수 있고 문자열은 String 변수에 저장할 수 있습니다. 감사합니다 :)
int num = 65; char alphabet = (65 == num) ? 'A' : (66 == num) ? 'B' : (67 == num) ? 'C' : ‘0’; 여기서 마지막 '0'이 무엇을 뜻하는지 알 수 있을까요..? + 오타인듯 싶은데 맞을까요? 바꾼다면 'D' 이런식으로..?
안녕하세요. 코드라떼입니다 :) 마지막 '0'은 문자 0으로 65도 아니고 66도 아니고 67도 아니면 그냥 문자 '0'을 반환하라는 의미입니다. 'D'나 'E'나 그 외의 값도 상관은 없습니다. 삼항 연산자를 작성하는 구문의 예시일 뿐입니다. 감사합니다 :)
"만약에 부자가 된다면 어떻게 할거니?" 기분 좋은 상상이신가요? 우리는 살면서 '만약에'라는 단어를 많이 사용합니다. 컴퓨터의 세계에서 '만약에'라는 단어가 존재하는데요. 컴퓨터의 세계에서는 조건문이라고 부릅니다. 이번 시간에는 현대 프로그래밍 언어에서 공통적으로 존재하는 조건문에 대해 배우는 강의입니다. 자바의 조건문을 통해 프로그램의 실행흐름을 바꿀 수 있습니다.
ㅤ
참 또는 거짓을 반환하는 조건식을 작성하려면 기본적으로 논리 연산자에 대해서 알아야 합니다.
논리 연산자는 좌 -> 우로 연산을 하며 참인지 거짓인지 판단합니다. 다만 괄호가 있으면 괄호에 있는 것을 먼저 연산을 합니다.
가장 앞의 true와 false를 OR 연산을 하고 연산의 결과 값과, 그 다음 true와 OR 연산을 하여 true의 값을 반환합니다.
특별한 경우로 AND 연산의 경우 연산자 기준 좌측의 값이 false인 경우는 우측에 있는 값을 확인하지 않습니다. 그 이유는 우측에 있는 값과 상관없이 항상 결과 값은 false이므로 빠른 연산을 위해 생략합니다.
예시로 age 변수가 30인지 동등 비교 연산자를 이용하여 결과값을 확인한 후 false 이면 우측에 있는 weight == 20
연산을 하여 true인지 false인지 확인하지 않고 바로 false를 반환합니다.
연산자 우선 순위에 의해 괄호의 식을 먼저 확인합니다. false && true
연산 시 앞의 값이 false 이므로 바로 false를 반환하고 true와 false를 OR 연산하여 true를 반환합니다.
ㅤ
조건문은 조건식이 참(true)일 때 실행하는 분기 구문으로 프로그램의 실행 흐름을 조건에 따라 실행하거나 또는 실행하지 않도록 할 수 있는 구문입니다.
이러한 조건문에는 if
문과 switch
문이 있으며 조건은 항상 위에서부터 아래로 체크합니다.
ㅤ
if 문은 가장 위에 있는 조건식부터 순차적으로 확인하여 ‘참’인 조건식을 만나면 조건문 내부에 있는 코드를 실행 후 조건문을 탈출합니다.
if
, else if
, else
세 가지 키워드를 사용하거나 생략하는 방식으로 실행흐름을 제어할 수 있습니다.
ㅤ
if - else if - else
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else {
// 두 조건이 다 거짓이면 실행 후 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 번째 조건식이 참이면 두 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 조건이 모두 거짓인 경우 else 내부에 있는 코드를 실행 후 탈출합니다.
if - else
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else {
// 조건이 거짓이면 실행 후 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
조건이 거짓인 경우 else 내부에 있는 코드를 실행 후 탈출합니다.
if
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 조건문을 탈출합니다.
if - else if - else if - else
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else {
// 세 조건이 다 거짓이면 실행 후 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 번째 조건식이 참이면 두 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
세 번째 조건식이 참이면 세 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
세 조건이 모두 거짓인 경우 else 내부에 있는 코드를 실행 후 탈출합니다.
NOTE! else if의 개수는 제한이 없습니다.
if - else if - else if
if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
} else if (참 or 거짓) {
// 참이면 실행 후 조건문 탈출
}
첫 번째 조건식이 참이면 첫 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
두 번째 조건식이 참이면 두 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 그러나 거짓이면 그 다음 조건식을 확인합니다.
세 번째 조건식이 참이면 세 번째 조건문 내부에 있는 코드를 실행 후 탈출합니다. 거짓이어도 조건문을 탈출합니다.
NOTE! else if의 개수는 제한이 없습니다.
int age = 40;
if (60 <= age) {
// age가 40이므로 패스
} else if (50 <= age) {
// age가 40이므로 패스
}
// 밑에 있는 구문을 실행함
이렇게 조건문은 if
와 else if
, else
를 이용하여 프로그램의 실행 흐름을 다양하게 제어할 수 있습니다.
switch
문은 조건값에 따라 특정 case
부터 실행할 수 있도록 하는 구문입니다. 책의 라벨이라고 생각하면 쉽습니다. switch 문은 특정 case부터 아래로 내려가며 코드를 실행하되 break 키워드를 만나면 switch 문을 탈출합니다.
ㅤ
char
byte
short
int
Character
Byte
Short
Integer
String
enum
*Character, Byte, Short, Integer, String, enum은 이후에 배웁니다.
ㅤ
break 키워드 없는 switch 구문
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 아래의 case로 진행
default:
}
만약에 조건값이 '값1'이면
case 값1 -> case 값2 -> case 값3 -> defalult 순으로 실행됩니다.
만약에 조건값이 '값2'이면
case 값2 -> case 값3 -> defalult 순으로 실행됩니다.
만약에 조건값이 '값3'이면
case 값3 -> defalult 순으로 실행됩니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
break 키워드 있는 switch 구문 1
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 아래의 case로 진행
default:
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 -> case 값3 -> defalult 순으로 실행됩니다.
만약에 조건값이 '값3'이면
case 값3 -> defalult 순으로 실행됩니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
break 키워드 있는 switch 구문 2
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 아래의 case로 진행
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 탈출
break;
default:
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 -> case 값3 순으로 실행됩니다.
만약에 조건값이 '값3'이면
case 값3 을 실행 후 break문을 만나 switch 문을 탈출합니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
break 키워드 있는 switch 구문 3
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 탈출
break;
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 탈출
break;
default:
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값3'이면
case 값3 을 실행 후 break문을 만나 switch 문을 탈출합니다.
switch 문을 탈출하지 않는 이상 default는 맨 마지막에 실행됩니다.
default 키워드 없는 switch 구문
switch (조건값) {
case 값1 :
// 조건값이 '값1'이면 해당 위치 부터 실행 후 탈출
break;
case 값2 :
// 조건값이 '값2'이면 해당 위치 부터 실행 후 탈출
break;
case 값3 :
// 조건값이 '값3'이면 해당 위치 부터 실행 후 탈출
break;
}
만약에 조건값이 '값1'이면
case 값1 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값2'이면
case 값2 을 실행 후 break문을 만나 switch 문을 탈출합니다.
만약에 조건값이 '값3'이면
case 값3 을 실행 후 break문을 만나 switch 문을 탈출합니다.
ㅤ
실습도구에 해당 코드를 작성해 봅시다
ㅤ
ㅤ
코드 작성
int num = 65;
char alphabet;
if (65 == num) {
alphabet = 'A';
} else if (66 == num) {
alphabet = 'B';
} else if (67 == num) {
alphabet = 'C';
} else {
alphabet = '0';
}
System.out.println(alphabet);
출력
A
ㅤ
코드 작성
char locationPrefix = 's';
String location = "어딘지모름";
if ('k' == locationPrefix) {
location = "강남";
} else if ('s' == locationPrefix) {
location = "수원";
}
System.out.println(location);
출력
수원
ㅤ
코드 작성
boolean isToday = true;
if (isToday) {
System.out.print("오늘 ");
}
System.out.println("뭐할까?");
출력
오늘 뭐할까?
ㅤ
ㅤ
코드 작성
int category = 1;
switch (category) {
case 1:
System.out.println(1);
case 2:
System.out.println(2);
case 3:
System.out.println(3);
}
출력
1
2
3
ㅤ
코드 작성
int category = 1;
switch (category) {
case 1:
System.out.println(1);
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
}
출력
1
2
ㅤ
코드 작성
int category = 2;
switch (category) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
}
출력
2
ㅤ
코드 작성
int category = 4;
switch (category) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
default:
System.out.println("기본");
}
출력
기본
ㅤ
삼항 연산자는 if 문을 만들 수 있는 또 다른 방법을 제공합니다.
자료형 변수명 = (조건식) ? 참인 경우 : 거짓인 경우;
예시로 작성해보면 다음과 같습니다.
int num = 65;
char alphabet = (65 == num) ? 'A' : 'B';
조건식이 참인 경우 ‘A’의 값을 반환하고 거짓인 경우는 ‘B’의 값을 반환하며, 반환된 값은 char alphabet 변수에 저장됩니다.
int num = 65;
char alphabet = (65 == num) ? 'A' : (66 == num) ? 'B' : (67 == num) ? 'C' : '0';
삼항 연산자를 연결해서 사용할 수도 있습니다.
삼항 연산자는 특정 상황에서 조건문을 좀 더 간소하게 보여줄 수 있으나, 조건이 많아지면 오히려 코드의 가독성이 떨어지는 문제를 가지고 있습니다.
현업에서는 조건식이 하나인 경우일 때만 사용하는 것이 좋습니다.
boolean isReady = true;
int category = (isReady) ? 1 : 0; // 조건식이 하나일 때만 사용하는 것이 좋다
char locationPrefix = 's'; String location = "어딘지모름"; if ('k' == locationPrefix) { location = "강남"; } else if ('s' == locationPrefix) { location = "수원"; } System.out.println(location); 수원 여기서 질문 있습니다 String location = "어딘지모름"; 이 문장은 왜 있는건가요? 안 쓰인거 맞죠? location은 어딘지모름이였는데 if문을 통해서 location이 수원으로 바뀐건가요? 약간 이해가 안가네요 답변 해주시면 감사하겠습니다ㅜ,ㅜ
안녕하세요. 코드라떼입니다 :) "어딘지모름" 이 문장은 locationPrefix 변수에 저장된 값이 'k' 또는 's'가 아닌 경우 default 값으로 출력하기 위한 값입니다. 만약에 locationPrefix 변수에 저장된 값이 'k'의 경우 location에 저장하는 값이 "강남" 이며 's'의 경우 "수원" 입니다. 감사합니다 :)
switch문 설명해주실 때 'a' 이게 아니라 "a" 쌍따옴표여야지 않나요?? 홀따옴표도 되는 건가요?? 강의를 멈춰놓고 질문을 하러왔는데 띄어쓰기 하려구 스페이스바 누를 때 마다 강의가 켜졌다 꺼졌다가 하네요ㅠㅠㅠㅠ
안녕하세요. 코드라떼입니다 :) switch문에 문자('a')와 문자열("a")도 둘 다 가능합니다. 홀따옴표는 문자를 작성할 때 쌍따옴표는 문자열을 작성할 때 사용됩니다. 'ab'- X 작성 불가 "ab"- O 작성 가능 'a'- O 작성 가능 "a"- O 작성 가능 문자와 문자열은 엄연하게 구분됩니다. 문자는 char 변수에 저장할 수 있고 문자열은 String 변수에 저장할 수 있습니다. 감사합니다 :)
int num = 65; char alphabet = (65 == num) ? 'A' : (66 == num) ? 'B' : (67 == num) ? 'C' : ‘0’; 여기서 마지막 '0'이 무엇을 뜻하는지 알 수 있을까요..? + 오타인듯 싶은데 맞을까요? 바꾼다면 'D' 이런식으로..?
안녕하세요. 코드라떼입니다 :) 마지막 '0'은 문자 0으로 65도 아니고 66도 아니고 67도 아니면 그냥 문자 '0'을 반환하라는 의미입니다. 'D'나 'E'나 그 외의 값도 상관은 없습니다. 삼항 연산자를 작성하는 구문의 예시일 뿐입니다. 감사합니다 :)