해결된 질문
작성
·
259
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