연산자와 연산식
- 프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산이라고 한다.
- 연산자 : 연산에 사용되는 표시나 기호
- 피연산자 : 연산자와 함께 연산되는 데이터
- 연산식 : 연산자와 피연산자를 사용하여
연산자의 종류
- int형 변수 num1과 num2에 각각 2,3을 담고 초기화
- 사칙연산 가능
public class Ex01_Operator {
public static void main(String[] args) {
int num1 = 2;
int num2 = 3;
System.out.println("num1 + num2 = " + (num1 + num2));
System.out.println("num1 - num2 = " + (num1 - num2));
System.out.println("num1 * num2 = " + (num1 * num2));
System.out.println("num1 / num2 = " + (num1 / num2));
System.out.println("2로 나누고 나머지가 0이면 짝수" + (num1 % 2));
System.out.println("2로 나누고 나머지가 1이면 홀수" + (num2 % 2));
}
}
부호
- 양수인지 음수인지를 판단할 수 있는 기호 +, -
- 변수의 앞에 +를 넣으면 그대로 출력,-를 넣으면 부호가 반대가 됨.
public class Ex02_Buho {
public static void main(String[] args) {
int number = -100;
int result1 = +number;
int result2 = -number;
System.out.println(result1);
System.out.println(result2);
}
}
증감자
- ++, -- 가 있다.
- 선행 연산과 후행 연산이 있다.
- 변수 앞에 증감자가 오면 선행 연산, 변수 뒤에 증감자가 오면 후행 연산이다.
- 선행 연산은 해당 명령에서 증감자를 적용 후 결과가 처리되가, 후행 연산은 명령 처리 후 증감자를 적용한다.
public static void main(String[] args) {
int num1 = 1, num2 = 1;
num1++;
num2++;
System.out.println(num1);
System.out.println(num2);
System.out.println(num1++);
System.out.println(++num2);
System.out.println("증감식 종료 후 num1 : " + num1);
System.out.println("증감식 종료 후 num2 : " + num2);
}
}
boolean의 연산자
- boolean의 true = 1, false = 0의 데이터를 가진다.
- and 연산자 : 모든 조건이 1일 경우만 1로 출력
- 논리 곱이라고 하고 *연산을 할 수 있다.
- 11110=0처럼 계산된다.
- or 연산자 : 모든 조건이 0일 경우만 0으로 출력
- 논리 합이라고 하고 +연산을 할 수 있다.
- 1+1+1+1+1+1=1
- not 연산자(!) ; 어떤 값을 받아도 반대 값으로 출력된다.
- 1! = 0 / 0! = 1
String의 연산
- 기본적으로 앞에서부터 연산을 한다.
- str2처럼 앞에 int의 연산이 먼저 나온 경우 int의 계산, 그 후 string이 등장하였기 때문에 이후에는 String연산으로 된다.
public class Ex05_String {
public static void main(String[] args) {
String str1 = "JDK" + 11 + 1.5;
String str2 = 1.5 + 11 + "JDK";
System.out.println(str1);
System.out.println(str2);
}
}
대입 연산자, 비교 연산자
- = : 대입 연산자. 오른쪽의 값을 왼쪽으로 대입한다.
- 비교 연산자 (==, <, >, <=, >=)
- 0 < 4 / 1,2,3 / 3개
- 0≤ 4 / 0,1,2,3,4 / 5개
- 비교 연산자를 이용해 boolean의 값을 부여하기
- && AND연산자 : 모든 연산이 1이여야 1로 출력. 중간에 0이 나오면 뒤의 연산은 처리하지 않음(dead code)
- || OR연산자 : 하나라도 1이 나오면 1로 출력 1이 나오면 뒤의 연산은 처리하지 않음(dead code)
public class Ex06_Oper {
public static void main(String[] args) {
boolean bool1 = 1<3;
boolean bool2 = 1>3;
boolean bool3 = 1<=3;
boolean bool4 = 1>=3;
boolean bool5 = 1==3;
boolean bool6 = 1!=3;
System.out.println(bool1);
System.out.println(bool2);
System.out.println(bool3);
System.out.println(bool4);
System.out.println(bool5);
System.out.println(bool6);
boolean bool7 = 1<3 && 1<4;
boolean bool8 = 1<3 || 1>4;
System.out.println(bool7);
System.out.println(bool8);
}
}
3항 연산자
- 일반적으로 사용하지 않음. 조건문이 일반적이다.
- 조건식을 연산하여 true가 나올 때, false가 나올 때의 결과를 어떤 값으로 받고 싶은 경우 사용
- 조건식 (a 연산 b ? true에서 담는 값 : false에서 담는 값)
- 3항이 아니라 계속 연결해서 사용할 수 있으나 연결해야 할 경우 if문을 사용하는 것이 일반적임
public class Ex07_Oper {
public static void main(String[] args) {
int num1 = 10, num2 = 50;
String str1 = num1 == 10 ? "10살입니다." : "10살이 아닙니다.";
System.out.println(str1);
int score = 70;
String grade = score > 90 ? "A" : score > 80 ? "B" : score > 70 ? "C" : "D";
System.out.println(grade);
}
}
복합대입연산자
- 변수 += n / 기존 변수에 n만큼을 더한 값을 부여한다.
- 변수 += n 은 변수 = 변수 +n과 같다.
-
- 부분에 다양한 사칙연산이 들어갈 수 있다.
public class Ex08_Oper {
public static void main(String[] args) {
int result = 0;
result += 10;
System.out.println(result);
result *= 3;
System.out.println(result);
result /= 2;
System.out.println(result);
}
}
'공부일지' 카테고리의 다른 글
230918 (Java) (0) | 2023.09.18 |
---|---|
230918 (HTML, JSP기초) (0) | 2023.09.18 |
230915(HTML) (0) | 2023.09.15 |
230914(Java) (1) | 2023.09.14 |
230914(HTML) (0) | 2023.09.14 |