×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 2,877,087명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)
반응형



코딩을 다음과 같이 하면 출력은 무엇이 될까??



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
 int a,b;
 
 a = 5;
 b = 3;
 
 if(a < 0)
      if(b < 0printf("%d",b);
      
 else printf("%d",a);
 
 
 return 0;   
}
 
 
Crocus



답은 아무것도 출력되지 않는다.


만약 여기서 a값인 5가 출력되었다고 생각한다면, 우선 정답은 틀렸다.


중괄호의 중요성을 좀 더 생각해볼 코드이다.


if문과 else문을 중괄호로 보면 다음과 같다.




if(a<0) // 1번코드

{

if(b<0) 

{

printf("%d",b);

}

}

else 

{

printf("%d",a);

}    



if(a<0) // 2번 코드

{

if(b<0) 

{

printf("%d",b);

}

else 

{

printf("%d",a);

}    

}



1번 코드처럼 생각한 분들과 2번 코드처럼 생각한 분들이 있을텐데,


정답은 2번 코드이다.


if if else가 오면 가장 최근의 if에 else가 붙어간다.


이러한 오류를 범하지 않기위해 중괄호가 비록 코드의 길이를 1~2줄 늘리더라도


중괄호가 왜 중요한지 알아가면 되는것이고,


코더는 코드를 보는 사용자들에게 혼란을 주지 않도록 습관화 들이는 것이 좋을 것이다.



반응형

'Basic > C' 카테고리의 다른 글

scanf를 자유자제로 이용해보기  (2) 2017.04.18
Dangling pointer  (0) 2016.05.31
파일 입출력 옵션 및 예제  (0) 2016.02.29
문자열 비교시 실수할 수 있는 상황  (0) 2016.02.14
char 배열에 한글을 넣을 때 현상  (0) 2015.12.20