[열혈C프로그래밍] chapter 8. 조건에 따른 흐름의 분기

chapter 8

조건에 따른 흐름의 분기

08-1 조건적 실행과 흐름의 분기 (1)if문

# include <stdio.h>

int main(void){
	int num;
	printf("정수 입력: ");
	scanf("%d", &num);

	if(num<0) // num이 0보다 작다면 실행
		printf("num이 0보다 작다.\n");
	if(num>0) // num이 0보다 크다면 실행
		printf("num이 0보다 크다.\n");
	if(num==0) //num이 0이라면 실행
		printf("num이 0이다.\n");
	
	return 0;
}

(2)if~else문
=> if~else문은 조건을 만족하는 구문이 있다면 나머지 뒤의 구문들은 모두 건너띈다.

#include <stdio.h>

int main(void){

  int opt;
  double num1=3.0, num2=3.0;
  double result;
  
  printf("opt 입력(1,2,3,4)\n");
  scanf("%d" , &opt);
  
  if(opt ==1)
		result = num1 + num2;
  else if(opt==2)
  	result = num1 - num2;
  else if(opt==3)
  	result = num1 * num2;
  else
		result = num1 / num2;

  printf("result=%f \n", result);
  
  return 0;
}

(3)조건 연산자

(num1>num2) ? (num1) : (num2)

=> 조건을 만족하면 왼쪽 괄호의 변수 num1을 반환, 만족하지 못하면 오른쪽 괄호의 변수 num2을 반환.

#include <stdio.h>

int main(void){
  int num,abs;
  printf("정수 입력: ");
  scanf("%d",&num);

  abs = num>0 ? num : num*(-1);
  printf("절대값 : %d \n", abs);

  return 0;
}
08-2 반복문의 생략과 탈출: continue & break
(1)break문
반복문을 빠져나가고 싶을때 사용한다.
(2)continue문
뒤의 반복내용은 생략하고 반복문의 조건검사 위치로 이동한다. 이후 반복조건이 여전히 부합하다면 반복문을 계속 수행한다.
08-3 switch문 case n: n의 값에 따라 if문 처럼 해당 case의 코드를 수행한다.
break: 해당 case를 수행하고 break를 해야만 switch문에 나올 수 있다.
break를 사용하지 않으면 뒤의 case들을 수행하게 된다.
default 구문은 모든 case 의 값 중에 없는 값일 경우 default 구문을 수행한다.
#include <stdio.h>

int main(void){
	int num;
	printf("1,2 중 입력하세요\n");
	scanf("%d",&num);

	switch(num)
	{
		case 1: 
		  printf("1은 one. \n");
		  break;
		case 2:
		  printf("2는 two. \n");
			break;
    default: 
      printf("I don't know\n");
	}
	return 0;