본문 바로가기
C언어/C언어 간단 개념 정리

20강 21강 22강. 기초 제어문 (if문 while 문)

by Dev dreamer 2023. 1. 12.

출처: 정혜경 판타스틱 자료구조 입문 (in C)

[무료] 정혜경 판타스틱 자료구조 입문 (in C) - 인프런 | 강의 (inflearn.com)

 

 

 

if while break 

 

Proprocessor 지시문 (전처리기 명령어) #이 붙어있다.

#include 는 헤더파일을 포함하고

#define 는 메크로를 지정하고

#pragma 는 컴파일 환경을 바꿔주는 역할

 

선언문 

char, int, long, float, double 등 함수선언문 or 변수선언문

 

공문 (NULL statement) => 아무 코드 없이 ;  만 있을때 이러한 코드를 null statement 라고 한다.

 

 

제어문

택일문

if , if else, switch ~case

 

반복문

for, while , do~while

 

분기문

break, continue, goto, return

 

 

택일문(if)

논리코드 (shudo code) -> 특정언어에 종속되지 않게 원하는 결과값을 도출해 내기 위한 논리적 흐름

 

if 문의 블럭에는

if문의 조건이 참일경우

 

수행할 문장이 들어가 있다.

 

if문에 수행할 문장이 하나밖에 없으면

중괄호를 생략이 가능하다.

->수정해서 쓸때 오류가 생길수 있음

가능하면 치는게 좋은습관이다.

 

 

weight 를 먼저 선언해주고

scanf 로 weight 를 입력 받는다.

 

scanf 가 들어가게 되면 입력대기가 먼저 들어간다.

 

조건에 일치하면 첫번째 block이 실행되고

 

조건이 일치하지 않으면 else 문의 문장이 실행된다.

 

 

 

 

 

 

 

 

 

 

else if 로 한번더 조건을 따지는 경우 3형식

여기서 else 문은 조건식 1,2 를 모두 참이 아닌 경우에 작동한다.

 

이프문의 3형식에서 조건이 3개 이상이 될때 if 문을 중첩해서 써야 속도가 훨씬 빨라진다.

즉 조건이 3개 이상이 될때 if else if 나열하는 것 보다 if 문과 else 문으로 구성하고 각 해당 조건 내부에

세부 조건을 묻는 방식으로 하는것이 속도가 훨씬 빠르다.

 

 

if 와 else if 를 쭉 나열한다고 했을 때

 

if 와 else if 에서 나열된 조건이 모두 만족하지 않는

 

모두 해당하지 않는 부분에서 원하는 제어문이 없을때

 

; 를 넣어서라도 쓰는게 더 낫다.

 

맨 마지막 else 생략은 가능하긴 하지만

 

써주는게 보기에도 명확하고 compile이 warning 을 띄울수 있음.

 

 

 

while 문의 이해

 

 

 

 

 

 

 

 

 

 

sum을 0으로 선언해 놓고 해당 입력값들을

입력했을때 0이 아닌 경우에 해동 값을

sum에 꾸준히 더해준다.

 

이후 0 을 입력했을때 sum의 총합값을 더해준다.

어 그런대 scanf 를 두번을 사용해야 하네? 두번을 한번으로 줄이는 방법은 없을까??

 

 

무한 루프를 넣고 이를 통해 입력을 한번만 받고

탈출 조건을 내부에 입력을 통해서 scanf 를

한번만 입력하는 구조를 만들어준다.

 

 

 

 

 

C언어는 논리상수 true/ false 자체는 없고 숫자로 존재하긴한다.

0만 거짓 나머지 음수나 양수는 true 를 의미한다.

하지만 true false 가 너무 많기 때문에 대표적인 true 를 의미하는것을 1로 지정하였다

 

즉 C언어에서 true 는 1 거짓은 0이다.

 

true 는 C언어에서 1을 의미 -> while의 무한루프를 while(1) 을 통해서 구현이 가능하다.

 

break 는 while 문장을 탈출할때 쓸수 있다.

 

무한 루프를 만들어 놓고 분기문을 통해서 일정 조건이 되면 멈추게 설계함.

 

 

 

 

 

 

 

 

 

 

scanf 의 경우 "%d" 넣는 위치에

개행문자 등등을 넣으면 오동작을 한다.

 

 

 

 

 

while 의 조건을 일정 조건 범위로 설정해서도 이용이 가능하다.

 

printf 에서 5칸을 잡고 해당 decimal(10진정수) 를 찍어라 만약 num이 10이라고 하면 

이런식으로 표기해 준다.

num-- 를 쭉 진행해주면

 

 

 

 

while 문을 이용한 문제

 

5를 치면 *이 5개 입력되고

음수인 -4를 치면 #이 4개 입력되고

 

0을  치면 종료하는 프로그램

 

이때 0을 안치면 계속 프로그램이 끝나지  않는 코드를 써라

0을 쳤을때 프로그렘이 종료되며

아닌 경우에서는 계속 반복시키기 위해서

 

while(1)을 이용

0을 쳤을때 break

댓글