[16회차-①] JAVA (연산자와 조건문)
강의명 : 오픈프레임워크 활용 디지털융합 SW엔지니어 양성 과정
강의 날짜 : 21.04.13
1. 괄호 연산자
괄호 연산자 | 설명 |
( ) | 소괄호 |
{ } | scope괄호. 메모리의 수명을 결정짓는 영역, 블록 괄호 |
[ ] | 배열 괄호. Array 괄호 |
< > | java에서 특수데이터 타입을 표현하는 괄호 |
2. 산술 연산자
: 계산을 위한 연산자
산술 연산자 | 설명 |
+ | 덧셈 |
- | 뺄셈 |
* | 곱셈 |
/ | 나눗셈(몫) |
% | 나눗셈(나머지) |
나눗셈 연산자, 특히 나머지 연산자는 배수 계산에 많이 사용된다.
계산에는 피연산자가 두 개 필요하므로 이항 연산자이다.
public class Ex00 {
public static void main(String[] args) {
int n = 9;
if(n%2==0) {
System.out.println("n은 짝수 입니다");
}
else {
System.out.println("n은 홀수입니다.");
}
}
}
2로 나눈 나머지가 0이라는 조건을 만족한다는 것은 n이 2의 배수라는 의미이다.
이런 식으로 배수에 관한 조건을 나머지 연산자를 사용해 세울 수 있다.
배수를 사용해서 풀어내는 것이 소수계산이다.
이런 식으로 풀어내가는 과정을 알고리즘이라고 한다.
알고리즘을 해당 언어에 맞게 풀어내는 것을 로직화라고 한다.
Flow Chart를 그려가며 흐름을 파악하는 것이 중요하다.
3. 부호 연산자
: 양수와 음수를 나타내는 연산자
부호 연산자 | 설명 |
+ | 양수 |
- | 음수 |
부호 연산자는 연산에 필요한 피연산자가 하나이므로 단항 연산자이다.
4. 조건 연산자(관계 연산자)
값 두 개를 비교하는 판단 연산자이다.
즉 결과의 자료형이 boolean으로 값이 true와 false만 도출이 된다.
관계 연산자 | 설명 |
< | 미만(less then) |
<= | 이하 (less then or equalt) |
> | 초과(grater then) |
>= | 이상(grater then or equalt) |
!= | 같지 않다 (nor equal) |
== | 똑같다(same same) |
public class Ex01 {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println(a == b);
System.out.println(a > b);
System.out.println(a >= b);
System.out.println(a < b);
System.out.println(a <= b);
System.out.println(a != b);
String str = "Hello";
System.out.println(str instanceof String); //str의 자료형을 물을 때도 instanceof를 사용
//해당 자료형이 맞냐고 물어보는 연산자
}
}
5. 조건연산자(논리 연산자)
논리 연산자 | 설명 |
! | 부정(단항연산자) |
&& | AND |
|| | OR |
논리 연산자의 부정(!)은 단일 연산자이다.
&& 는 둘 다 참이어야 참 값을 반환한다.
|| 는 둘 다 거짓일 때만 거짓을 반환한다.
6. 연산자들의 우선순위( 큰 순으로)
① 괄호 연산자
( ) → { } → [ ] → < >
② 단항 연산자
부호 연산자 → 논리 연산자 부정 ! → 전위 연산자
③ 이항 연산자
산술 연산자 → 관계 연산자 →논리 연산자 AND와 OR
④ 삼항 연산자
⑤ 대입 연산자들
대입 연산자 = 와 복합대입연산자
⑥ 후위 연산자
7. if - else 구문
public class Ex00 {
public static void main(String[] args) {
int n = 9;
if(n%2!=0) { //괄호 안에 조건식, 조건이 true일 때
System.out.println("n은 홀수 입니다"); //실행문
}
else { //조건이 false일 때
System.out.println("n은 짝수입니다.");
}
}
}
8. 삼항 연산자
public class Ex02 {
public static void main(String[] args) {
int a = 12, b = 4, c = 19;
int max = ( a > b ) ? a : b; //조건식 결과 : true, max에 a 대입
max = ( max > c ) ? max : c; //조건식 결과 : false, max에 c 대입
System.out.println( "최대값은 " + max );
}
}
삼항 연산자는 if - else 구문을 풀어서 짧게 쓴것이나 다름없다.
괄호 안에는 조건식, 물음표가 if, : 가 else를 나타내는 것이다.
삼항 연산자는 결과 값을 결정하게 되는데, 그 결과를 반드시 대입해주어야한다.
즉, 값을 대입할 대상이 필요하다.
if - else 구문에서는 꼭 else문이 필요한 것은 아니지만 삼항 연산자는 else의 역할을 하는 : 가 꼭 필요하다.
9. 다중 조건문 ( if - else if - else)
public class Ex03 {
public static void main(String[] args) {
int score = 88;
char grade;
if (score >= 90 ) {
grade = 'A';
} else if ( score >= 80 ) {
grade = 'B';
} else if ( score >= 70 ) {
grade = 'C';
} else if ( score >= 60 ) {
grade = 'D';
} else {
grade = 'F' ;
}
System.out.println( "학점은 " + grade );
}
}
다중 조건은 if문 외에 else if문에 또다른 조건식을 주어 만든 것이다.
그리고 그 조건식들의 값에는 다 boolean 자료형만 들어올 수 있다.
10. 다중 조건문 (swtich - case)
public class Ex04 {
public static void main(String[] args) {
int score = 88;
char grade;
switch (score / 10) { //int 값이 들어옴
case 10:
grade = 'A' ; break;
case 9:
grade = 'A' ; break;
case 8:
grade = 'B' ; break;
case 7:
grade = 'C' ; break;
case 6:
grade = 'D' ; break;
default:
grade = 'F' ;
}
System.out.println( "학점은 " + grade );
}
}
switch 옆 소괄호의 조건식에는 int, long, String의 자료형만 들어올 수 있다.
case 옆에는 해당하는 값을 적고 : 를 적은 후, 그 밑에 실행문을 구현한다.
중요한 점은 특수 제어문 break; 문으로 swtich-case문을 탈출하지 않으면 해당 케이스 밑 케이스들의 실행문도
타버리기 때문에 주의해야 한다.
물론 무조건 break; 문을 써야하는 것은 아니다.
default는 case의 어느 것에도 해당하지 않을 때의 실행문을 구현해준다. 없어도 무관하다.
11. 증감 연산자 (카운터 연산자)
증감 연산자 | 설명 |
a++ | 후위 연산자, 1 증가 |
++a | 전위 연산자, 1 증가 |
a-- | 후위 연산자, 1 감소 |
--a | 전위 연산자, 1 감소 |
더해지는 값은 무조건 1이어야 한다.
그 외의 값은 허용되지 않는다.
그리고 바뀐 값은 해당 변수가 다시 가져가야 한다.
증감 연산자는 다른 연산자와 함께 사용될 때의 우선순위가 중요하다.
public class Ex07 {
public static void main(String[] args) {
int a = 10, b = 10;
System.out.println( "Before a : " + a
+ ", b : " + b );
System.out.println( "a++ : " + a++ ); //a++은 후위연산자이므로 우선순위 가장 낮음
System.out.println( "++b : " + ++b ); //++b는 전위 연산자, 즉 단항 연산자이므로 결합 연산자보다 우선순위 높음
System.out.println( "After a : " + a
+ ", b : " + b );
}
}
다른 누군가와 함께 후위 연산자가 쓰이면 후위 연산자는 우선 순위가 가장 낮아서 제일 마지막이다.
먼저 계산을 진행하고 ;으로 문장을 끝내기 전에 후위 연산자를 진행한다.