본문 바로가기
Java/기본 개념 및 클래스

[Java] 8. 항과 연산자(대입,부호,산술)

글: Song hyun 2024. 4. 10.
728x90
반응형

[Java] 8. 항과 연산자(대입,부호,산술)

 

 

 

1. 항: 연산 과정에서 사용되는 데이터나 값
연산자: 하나 이상의 항을 사용해, 특정 연산을 수행하는 기호

2. 대입 연산자(Assignment Operator): =
-특정 값이나 다른 변수의 결과를 변수에 할당(대입)하는 데 사용된다.
-대부분의 이항 연산자 중에서 우선 순위가 가장 낮아서, 대부분의 연산이 이루어진 이후에 마지막으로 할당된다.
-기본적인 연산의 순서는 오른쪽에서 왼쪽으로 흘러간다.
-기본 형태: 왼쪽 변수=오른쪽 표현식/값/변수/계산식

3. 부호 연산자: +,-
-변수(리터럴)의 부호를 변경하거나 유지하는 단항 연산자이다. 
-+ 연산자는 변수의 부호를 그대로 두고, -연산자는 변수의 부호를 반전시킨다.
-변수의 실제 값을 변경하려고 할 때는 부호의 연산자와 함께 대입 연산자를 사용해야 한다. 


-반드시 기억->*변수의 실제 값이 변경된 것은 아니다.
-**메모리 공간 안에 실제 값을 변경하려면 어떻게 해야할까? -> 대입 연산자와 함께 사용해야 한다. 

 

 

3. 산술 연산자: +,-,*,/,%

(1) +: 더하기 연산자

(2) -: 빼기 연산자

(3) *: 곱하기 연산자

(4) /: 나누기 연산자(몫)

(5) %: 나누기 연산자 (나머지)

 

 

 

연습문제

문제 1. (12+3)/3

(1) 정수형(int)으로 출력하기

-정수형 변수 a(int)에 (12+3)/3의 값을 대입한다.

 

(2) 실수형(double)으로 출력하기

-실수형 변수 b(double)에 (12.0+3.0)/3의 값을 대입한다.

int a=(12+3)/3;
double b=(12.0+3.0)/3;
System.out.println("정수형 : "+a);
System.out.println("실수형 : "+b);

 

 

 

문제 2. (25%2)값을 화면에 출력하라.

(1) 몫(/) 출력하기

-정수형(int) 변수 ect에 25/2를 대입한다.

 

(2) 나머지(%) 출력하기

-실수형(double) 변수 real에 25.0%2를 대입한다.

int ect=25/2;
double real=25.0%2;
		
System.out.println("25 나누기 2 = "+real);
System.out.println("나머지는? "+ect);

 

 

 

3. 15를 4로 나눈 후, 그 결과와 절대값을 출력해보자.

(1) Math math;를 통해 라이브러리를 불러온다.

-라이브러리란? 기존의 개발자들이 개발한 안전하고 검증된 알고리즘.

-Math.abs(변수명): 변수의 절대값을 구해주는 라이브러리이다.

 

-절대값: 어떤 수의 크기를 나타내는 것으로, 일직선 상에서 그 수가 0과 얼마나 떨어져 있는지를 표시한다. 

어떤 수의 절대값은 그 수가 음수이든, 양수이든 상관없이 언제나 양수가 된다.

-0의 절대값은 0이다.

 

(2) 정수형(int) 변수 num1에 15/4(몫)의 값을 대입한다.

(3) 정수형(int) 변수 num2에 Math.abs(num1)을 대입한다.

Math math;
		 
int num1=15/4;
int num2=Math.abs(num1);

 

 

 

4. 한 반에 30명의 아이들이 있다.

나누어 줄 수 있는 딸기의 개수는 66개, 토마토의 개수는 44개이다.

각각의 아이들에게 딸기와 토마토를 각각 5개, 2개씩 나누어줘야 한다면

받을 수 있는 아이와, 받지 못하는 아이들의 수는 몇 명일까?

+모든 아이들에게 나누어주려면 몇 개가 더 필요한지 생각해보자.

 

(1) 변하지 않는 값들을 먼저 상수(constant)로 지정한다.

-final int를 통해, 변수 CHILD에 아이들의 수인 30을 대입한다.

-final int를 통해 변수 STRAW, TOMATO에 각각 딸기와 토마토의 수인 66,44를 대입한다.


(2) 과일을 받을 수 있는 아이의 수를 연산한다.

-과일을 받을 수 있는 아이의 수를 구하는 공식은, (과일의 수/나누어줘야 하는 갯수)의 몫과 같다.

-토마토를 받을 수 있는 아이의 수: int tomato_can=TOMATO/2;

-딸기를 받을 수 있는 아이의 수: int straw_can=STRAW/5;

 

(3) 과일을 받지 못한 아이들의 수를 연산한다.

-과일을 받지 못한 아이들의 수=(전체 아이들의 수/과일을 받은 아이들의 수)의 몫

-토마토를 받지 못한 아이들의 수: int tomato_lack=CHILD-tomato_can

-딸기를 받지 못한 아이들의 수: int straw_lack=CHILD-straw_can

 

+(3) 모든 아이들에게 과일을 나누어 주려면, 앞으로 몇 개가 더 필요할까?

-앞으로 더 필요한 과일의 수=(3) 이전에 과일을 받지 못한 아이들의 수*나누어줘야 하는 과일의 수

-토마토는 몇 개가 더 필요한가?: int tomato_need=tomato_lack*2

-딸기는 몇 개가 더 필요한가?: int straw_need=straw_lack*5

final int CHILD=30;
final int STRAW=66;
final int TOMATO=44;
		
int tomato_can=TOMATO/2;
int straw_can=STRAW/5;
		
int tomato_lack=CHILD-tomato_can;
int straw_lack=CHILD-straw_can;
		
System.out.println("현재 토마토를 받을 수 있는 아이는 "+ tomato_can+"명 입니다.");
System.out.println("현재 딸기를 받을 수 있는 아이는 "+straw_can+"명 입니다.");
System.out.println("현재 토마토를 받지 못한 아이는 "+tomato_lack +"명 입니다.");
System.out.println("현재 딸기를 받지 못한 아이는 "+ straw_lack +"명 입니다.");
		
int tomato_need=tomato_lack*2;
int straw_need=straw_lack*5;
		
System.out.println("앞으로 토마토가 " + tomato_need + "개 더 필요합니다.");
System.out.println("앞으로 딸기가 "+straw_need+"개 더 필요합니다.");

 

 

성공적으로 결과가 도출되는 것을 확인할 수 있다.

728x90
반응형