마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

boolean에서 int를 뺄 수 있나요?

0 추천

안녕하세요. 최근 어떤 앱을 코드를 보게 되었습니다. 

코드를 살펴보다 잘 이해가 안 되는 점을 발견했습니다. 

class LoginModule {
		// 강제 업데이트 작업시 세션의 시간을 단축합니다.
		private int timeCali;

		public LoginModule(boolean force) {
			timeCali = (force)?-240*1000:0;
		}

force는 boolean이고 timeCali는 int인데 어떻게 =이 될 수 있는지 알려주시면 감사하겠습니다. 

카별 (360 포인트) 님이 2013년 7월 3일 질문

2개의 답변

+1 추천
 
채택된 답변
boolean 에서 int를 빼는 게 아니라...

? : 연산자입니다

"조건문 ? 참 : 거짓" 형태입니다.

위 소스코드상

timeCali = (force) ? -240*1000:0;



if( force ) timeCali = -240 * 1000;

else timeCali = 0;

과 동일합니다.
어흥문다 (480 포인트) 님이 2013년 7월 3일 답변
카별님이 2013년 7월 17일 채택됨
+1 추천
단항 연산자라고 합니다.

흔히들 C 같은 곳에서 연산 속도를 빠르게 하기 위해서 사용하는 연산자 입니다.

일단, boolean은 다음과 같은 의미를 내포합니다.

false에 해당하는 값은 0이고요. 그 이외의 값은 모두 true로 처리를 하게 됩니다.

그러나 문의 하신 문장은

timeCali라는 변수에 값을 치환하는데, force가 true 이면 -240*1000의 값 즉 -240,000이 timeCali의 값이 되고, force가 false 이며, timeCali가 0이라는 의미 입니다.
컴천재 (2,580 포인트) 님이 2013년 7월 4일 답변
감사합니다! 이해가 잘 되었습니다.
...