06:조건분기

become Xcoder 2011.06.21 23:10
if()
특정의 조건에 일치할 때만 있는 처리를 하고 싶을 경우가 있습니다. 이러한 조건을 지정하기 위한 특수한 구문이 있습니다 [1.2] 
[1]
// age는 int형의 변수로, 사용자의 연령이 대입되고 있습니다
if (age > 30)//>기호의 의미는 「보다큰 」
{
  NSLog(@”age is older than thirty.”);// [1.4]
}
NSLog(@”Finished.”);// [1.6]

[1.2]에 if()라고 하는 명령이 있습니다. 이것은「조건분기」명령이라고 부릅니다. 이 괄호 안에는 조건으로 지정하고 싶은 논리식 (옳은지 옳지 않은지를 판정하는 식)을 지정합니다. 그 조건에 일치하면, 예를 들면 여기에서는 「age >30」 (변수age의 값이 30보다 크다)이라면, 다음 안 괄호 {} 안의 코드가 실행되어, [1.4]의 문자열이 표시됩니다. 그리고 [1.6]은 if 안괄호의 밖에  있기 때문에 조건에 일치해도 하지 않아도 [1.6]의 문자열이 표시됩니다. 여전히 if()의 행의 마지막에는 세미콜론;은 필요 없습니다. 붙이면 동작하지 않으므로 주의해 주십시오. 여전히 이 앞의 코드는 5장에서 만든 샘플 프로그램을 사용해서 실제로 시도하면서 읽는 것을 추천합니다. 

if() else()
if…else구문을 사용하는 것으로, 조건에 일치하지 않았을 경우의 처리를 지정할 수도 있습니다 [2]. 
[2]
// age는 int형의 변수로, 사용자의 연령이 대입되고 있습니다
if (age > 30)
{
  NSLog(@”age is older than thirty.”);// [2.4]
}
else
{
  NSLog(@”age is not older thirty.”);// [2.8]
}
NSLog(@”Finished.”);

조건에 일치하지 않는 (변수age가 30보다 크지 않은, 즉 30이하의) 경우, [2.8]의 문자열이 표시됩니다. 
 
비교
[2.2]에 「보다 크다」 (>) 기호 이외에, 이하의 비교를 위한 기호 (이러한 기호를 「비교연산자」라고 부릅니다)을 사용할 수 있습니다. 
== 같다
>보다 크다
<보다 작다
>= 이상
<= 이하
!= 같지 않다
「같다」 연산자는 특히 주의해 주십시오. =가 둘입니다. 처음은 그것을 잊어서 =을 하나만 사용해버리는 것이 종종 있습니다만, 하나의 =은 「대입」의 연산자이며, 좌변에 우변의 값을 대입하기 위한 기호입니다. 이것은 초심자에게 자주 틀리는 것입니다.「둘의 값이 같은 것인가 아닌가 조사할 때는==을 사용한다」라고 하는 것을 잘 기억해 두어 주십시오. 
 비교의 연산자는, 어떤 처리를 특정한 회수만 되풀이할 때에, 특히 편리합니다. 그것은 다음 장의 테마가 됩니다. 우선은, 나중에 도움이 될 지도 모르는 if의 다른 사용방법에 대해서 배웁시다. 

연습
비교에 대해서 좀더 자세하게 배웁시다. 비교 연산의 결과는 2종류밖에 없습니다. 정(옳다= true)인가 부(옳지 않다= false)입니다. 

 Objective-C에서는 true와 false는 1과 0의 수치로 표현됩니다. 또 BOOL형이라고 불리는, true와 false를 표현하기 위한 특수한 데이터형도 있습니다. true를 표현하기 위해서 1 혹은 YES라고 쓸 수도 있습니다. false라면 0 혹은 NO입니다. 
 
[3]
int x = 3;
BOOL y;
y =(x == 4);// y는 0이 됨

보다 많은 조건을 지정할 수도 있습니다. 하나이상의 조건이 모두 옳음이라고 하는 조건을 지정하기 위해서는 논리적AND를 이용합니다. 연산자는 && 하나이상의 조건의 어느 것인가 옳음이라고 하는 조건을 지정하기 위해서는 논리화(화합)OR을 이용합니다. 연산자는 || (세로막대둘)입니다. [4.1]은 「age가 18이상에서 동시에 age가 65보다 작다」라고 하는 의미입니다. 
[4]
if ((age >=18)&& (age < 65))
{
  NSLog(@”Probably has to work for a living.");
}
혹시
if ((age >= 18)|| (age <65))
로 변경하면 「age가 18이상 혹은 age가 65보다 작다」 (즉 모든 숫자가 일치합니다)란 의미가 됩니다. 
 또 조건식을 네스트 (조합시킨다) 것도 가능합니다. 단지, 어떤 조건식 안괄호 {} 안에 다른 조건식을 넣는 것 뿐입니다. 먼저 최초의 조건이 일치할 것인가 아닌가 조사할 수 있어 (전문적으로는「평가한다」라고 말합니다), 만약 true(일치한다)이라면, 계속해서 안의 조건이 평가됩니다. 
[5]
if (age >= 18)
{
  if (age < 65)
  {
    NSLog(@”Probably has to work for a living. ”) ;
  }
}

원문  http://www.cocoalab.com/?q=node/12

'become Xcoder' 카테고리의 다른 글

07:반복처리  (0) 2011.06.21
06:조건분기  (0) 2011.06.21
05:프로그램을 컴파일해서 실행  (0) 2011.06.21
04:화면에 표시하기  (0) 2011.06.21
03:함수  (0) 2011.06.21
02:노 코멘트(no comment)? 그것은 안됨!  (0) 2011.06.21
Posted by tklee

댓글을 달아 주세요