날아라쩡글이의 블로그입니다.
연산자 본문
연산자 (operator)
연산자란, 수학적 기호에 프로그래밍 기능이 정의 되어있어서 해당 수학기호를 사용하면
자동으로 그 기능들이 실행되는 수학 기호들을 연산자라고 한다.
연산자에는 크게 산술, 할당, 비교, 논리 ,비트 5가지의 연산자가 있다.
단, 이중에서 비트 연산자의 경우 난이도는 높은데, 사용처는 매우 적으므로 우리는 배우지 않을 것이다.
비트는 네트워크 이미지 처리등 자주 사용하는 곳에서만 사용한다.
산술연산자
산술연산자란, 더하기, 빼기, 곱하기 , 몫, 나누기를 구해주는 연산자로써
각각 + , - , * , / , % 를 사용하게 된다.
앞 뒤의 값을 각각 더하고 빼고 곱하고 몫을 구하고 나누기를 구해준다.
다만, 산술 연산자의 경우, 결과값의 데이터 타입은 둘 중 더 큰 데이터 타입,
즉, 데이터 타입의 손실이 없는 데이터타입을 자동으로 선택하게 된다.
public class Ex03Operator {
public static void main(String[]args) {
System.out.println("1.int의 산술 연산");
//int 변수 myInt1와 myInt2를 선언하고 각각 5와 10을 저장하자
int myInt1 = 5;
int myInt2 = 10;
//A. +
System.out.println("1-A.myInt1 + myInt2");
System.out.println(myInt1+myInt2);
//B. -
System.out.println("1-B.myInt1 - myInt2");
System.out.println(myInt1-myInt2);
//C. *
System.out.println("1-C.myInt1 * myInt2");
System.out.println(myInt1*myInt2);
//D. /
System.out.println("1-D.myInt1 / myInt2");
System.out.println(myInt1/myInt2);//int의 형태로 출력하기 때문에 0이라는 값이 나옴
//E. %
System.out.println("1-E.myInt1 % myInt2");
System.out.println(myInt1%myInt2);
System.out.println("2.실수끼리의 산술 연산");
//double 데이터타입의 변수 myDouble1과 myDouble2를 선언하고 각각 값을 저장하자.
double myDouble1 = 3.6;
double myDouble2 = 3;
System.out.println("2-A. myDouble1+myDouble2");
System.out.println(myDouble1+myDouble2);
System.out.println("2-B. myDouble1-myDouble2");
System.out.println(myDouble1-myDouble2);
System.out.println("2-C. myDouble1*myDouble2");
System.out.println(myDouble1*myDouble2);
System.out.println("2-D. myDouble1/myDouble2");
System.out.println(myDouble1/myDouble2);
//실수가 표현될수 있어서 1.2의값이 나옴
System.out.println("2-E. myDouble1%myDouble2");
System.out.println(myDouble1%myDouble2);
//0.6000000000000001으로 값이 정확함
System.out.println("3.정수와 실수끼리의 산술 연산");
System.out.println("3-A. myInt1+myDouble2");
System.out.println(myInt1+myDouble2);
System.out.println("3-B. myInt1-myDouble2");
System.out.println(myInt1-myDouble2);
System.out.println("3-C. myInt1*myDouble2");
System.out.println(myInt1*myDouble2);
System.out.println("3-D. myInt1/myDouble2");
System.out.println(myInt1/myDouble2);
//정수와 실수를 나누면 실수의 값으로 출력된다.
System.out.println("3-E. myInt1%myDouble2");
System.out.println(myInt1%myDouble2);
번외.
String데이터타입의 값에 + 연산을 해보자
String str = "35";
String의 값의 경우, 다른연산자는 사용할 수 없지만 + 연산자는 사용할 수 있는데
앞과 뒤를 연결시켜서 하나의 커다란 String값으로 만들어주는 연산자가 된다.
System.out.println(myInt1+str);
System.out.println(str+myInt1);
//string 변수 str1과 str2를 만들어서 각각 "abc"와 "DFE"를 저장하자
String str1 = "abc";
String str2 = "DEF";
//1.str1 + str2;
System.out.println(str1+str2);
//2.str2 + str1;
System.out.println(str2+str1);
//3.str1+"가나다 "
System.out.println(str1+"가나다");
//4."가나다"+str1
System.out.println("가나다"+str1);
//5."12"+34
System.out.println("12"+34);
//6.34+"12"
System.out.println(34+"12");
}
}
할당 연산자 , 저장 연산자
할당 연산자는 오른쪽의 값을 연산하여 왼쪽 공간에 저장하는 연산자이다.
할당 연산자에는 기본 할당 연산자, 더하기 할당 연산자, 빼기 할당 연산자, 곱하기 할당 연산자 , 몫 할당 연산자
나머지 할당 연산자 그리고 증감 연산자가 있다.
public class Ex04Operator2 {
public static void main(String[]args) {
//int 변수 myInt를 선언해보자
int myInt;
//1. = 오른쪽 값을 왼쪽 공간에 저장하라.
myInt = 15;
System.out.println("1.결과:"+myInt);
//2. += 왼쪽 공간의 현재값에 오른쪽 값을 더한 결과값을 다시 왼쪽 공간에 저장하라
//myInt의 값은 15가 저장되어있고 현재값에 오른쪽 값인 4를 저장하여 19의 결과값이 출력된다.
myInt += 4;
System.out.println("2.결과:"+myInt);
//3. -= 왼쪽 공간의 현재값에 오른쪽 값을 뺀 결과값을 다시 왼쪽 공간에 저장하라
myInt -=3;
System.out.println("3.결과:"+myInt);
//4. *= 왼쪽 공간의 현재값에 오른쪽 값을 곱한 결과값을 다시 왼쪽 공간에 저장해라
myInt *=4;
System.out.println("4.결과:"+myInt);
//5. /=왼쪽 공간의 현재값에 오른쪽 값을 나눈 몫을 다시 왼쪽 공간에 저장해라
myInt /=3;
System.out.println("5.결과:"+myInt);
//6. %=왼쪽 공간의 현재값에 오른쪽 나눈 나머지 몫을 다시 왼쪽 공간에 저장해라
myInt %=8;
System.out.println("6.결과:"+myInt);
double myDouble = myInt;
System.out.println(myDouble);
증감연산자 (++, --)
증감연산자는 해당 공간의 값을 1증가시키거나 감소시킨다.
단, 증감연산자가 앞에 붙냐 뒤에 붙냐에 따라서 실행순서가 달라지게 된다.
System.out.println("-----------------");
System.out.println("전위 증감 연산자");
//전위 증감연산자의 경우, 해당 줄에서 가장 높은 우선순위의 그룹에 속하게 된다. 즉, 제일 먼저 실행되는 코드가 된다.
System.out.println("-----------------");
System.out.println("myInt의 현재값:"+myInt);
System.out.println("++myInt:"+ ++myInt);
System.out.println("myInt의 현재값:" + myInt);
//위에 System.out.println("++myInt:"+ ++myInt);은 한줄로 적혀있지만 실제로는 다음과 같은 단계를 밟는다.
//1. ++myInt가 실행되서, myInt의 현재 저장된 값이 5에서 6으로 1증가된다.
//2. "++myInt:"+myInt가 실행이 되서 , "++myInt:6"이라는 String 값이 만들어진다.
//3. System.out.println()이 실행되서 화면에 "++myInt:6"이 출력된다.
System.out.println("-----------------");
System.out.println("후위 증감 연산자");
//후위 증감연산자는 해당 줄에서 우선순위가 가장 낮은 그룹에 속하게 된다.
//즉, 가장 마지막에 실행된다.
System.out.println("-----------------");
System.out.println("myInt의 현재값:"+myInt);
System.out.println("myInt++:"+ myInt++);
//위 코드는 다음과 같은 과정을 거친다.
//1."myInt++:"+myInt 가 실행되서 "myInt++: 6 "이라는 String값이 만들어진다.
//2. System.out.println()이 실행되서 화면에 "++myInt:6"이 출력된다.
//3. myInt++이 실행되서 myInt의 현재값이 6에서 7로 1 증가된다.
//즉, 화면출력이 끝나고나서 값이 증가한 것이다.
System.out.println("myInt의 현재값:" + myInt);
번외.
String공간에는 +=을 실행할 수 있다.
String str = "abc";
str += 1;
str +="가나다";
System.out.println("str의 현재 값: "+str);
}
}
'java (학원 전) story' 카테고리의 다른 글
연산자 02 (0) | 2021.08.03 |
---|---|
java class이름 변경시 (Tip) (0) | 2021.08.03 |
형변환 (0) | 2021.08.03 |
논리형 데이터 타입 (0) | 2021.08.03 |
데이터 타입(오버플로우, 언더플로우) (0) | 2021.08.02 |