• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

연산자 파트 질문

23.01.21 20:34 작성 조회수 218

0

 

안녕하세요 연산자 첫 파트 강의를 듣고 있는데요

밑에 (1) 식에서는 c를 30으로 한번 출력하고 다시 식을 줄 때

c = a - b;로 바로 했는데

(2)에서는 val = 10;을 다시 선언하고 한게 무슨 차이인지

모르겠습니다.

(2)에서 처음 val 이 11로 됐기 때문에 다시 val=10;으로 한거라면

(1)에서도 c는 30이 됐으니까 다시 c를 0으로 해줘야 하는거 아닌지..

 

(1)

int a = 20; int b = 10;

int c;

c = a + b;

System.out.println(c); //30

c = a - b;

System.out.println(c); //10

 

(2)

int val;
val = 10;
System.out.println(val); //10
System.out.println(++val); //11
System.out.println(val); //11

val = 10;
System.out.println(val);
System.out.println(val++);
System.out.println(val);

답변 2

·

답변을 작성해보세요.

0

안녕하세요?
c = a + b; 동작을 하게 되면 a 와 b 를 더한 30 이라는 값이 c 에 저장됩니다.
c = a - b; 동작을 하게 되면 a 에서 b 를 뺀 10 이라는 값이 c 에 저장됩니다.
두 경우 모두 c 에는 무엇이 들어있건 상관 없이 우측의 값 또는 식의 결과가 c 에 저장되는 것이죠. c 에는 100 이 들어있건 0 이 들어있건 상관 없이 지금 수행되는 문장의 등호 (=) 우측에 있는 값이 저장되는 것입니다.

(2) 식에서는 ++ 연산자의 위치에 따른 실행 결과를 확인시켜드리기 위해서 val 변수에 10 을 넣고 값 변화를 확인한 것입니다. 처음에는 val 이 10 일 때 변수 앞에 ++ 을 넣었을 때 val 변수의 값 변화를 확인했는데, 이후에는 동일한 조건에서 변수 뒤에 ++ 을 넣었을 때 val 변수의 값 변화를 확인하기 위해 val 변수에 다시 10 을 넣은 것입니다. 앞서 말씀드렸듯 val 변수에는 무슨 값이 들어있건 상관 없이 지금 수행되는 문장의 등호 (=) 우측에 있는 값 10 이 저장되는 것입니다.

이해에 도움되시길 바라겠습니다 😊
감사합니다.

0

psh님의 프로필

psh

2023.01.22

c = a + b, c = a - b 모두 c에 영향이 가지 않으므로 괜찮아요!