프로그래밍은 CPU에서 할일은 지정해주는것이다.
할일을 지정해줄때 분기,반복등 여러 조건을 정해줄 수 있다.
중단Halt
- exit(숫자)
점프Jump
- goto,break,continue
조건분기Conditional branches
- if,switch
반복(루프)Loops
- while,do while,for
예외처리
- try,catch.throw

등이 있다.

 

중단Halt

exit(0)

#include <iostream>
#include <cstdlib>

using namespace std;

int main() 
{
	//출력 2번하는 프로그램
	cout << "test" << endl;
	//return은 return type에 맞춰서 값을줘야하지만 exit(숫자)는 상관없이 종료한다.
	exit(0);
	cout << "good" << endl;
	
	return 0;
}

조건문 if
if(bool타입){}조건으로 사용한다.
if문다음 else if()는 다음 조건을 설정할 수 있다.
else{}는 if의 조건이 안맞을때 실행된다.
논리연산자 사용이 가능하다.
return을 사용할 수 있다.

주의할점
{}(scope)을 안쓰면 아래 한줄만 동작한다.
if(조건)안에 정수가 0(false)이아니면 true로 인식한다.
논리연산자가 아닌 =을 사용하면 값을 대입하고 그값으로 if문이 작동한다.

 

#include <iostream>

using namespace std;

int main()
{
	int x,y;
	cin >> x;
	cin >> y;
	//논리연산자 사용
	if (x == y && x > 0) {
		cout << "x = y && x > 0" << endl;
	}
	
	if (x > 10) {
		cout << x << endl;
	}
	else if (x > 5) {
		cout << x << " = 10 > x > 5 " << endl;
	}
	else {
		cout << x << " < 5" << endl;
	}

	//0이 아니면 true로 본다.
	if (1) {
		cout << "if(1)" << endl;
		x = 10;
	}

	cout << x << endl;

	//return하는 if
	if (x == 10) {
		return 10;
	}
	return 0;
}
#if문
x = -10

if x < 0:
print('x는 0보다 작다.')

x = 10

#else문
if x < 0:
print('x는 0보다 작다.')
else:
print('x는 0보다 크다.')

#if else문
x = 0
b = 5
if x < 0:
print('x는 0보다 작다.')
elif x == 0:
print('x는 0이다.')
#if문 안의 if문 사용법
if b == 5:
print('b는 5이다.')
else:
print('x는 0보다 크다.')

"""
if문 출력결과
x는 0보다 작다.
x는 0보다 크다.
x는 0이다.
b는 5이다.
"""

#in,not의 쓰임
#숫자사용할때는 비추천한다.
#아래 코드는 테스트용
a = [1,2,3]
b = 1
if b in a:
print('in')

if 100 not in a:
print('not in')

boolean = False
if not boolean:
print('True가아니다')

#Flase로 판정되는 것들
#Flase, 0, 0.0, '', [], (), {}, set()
str = ''
if str:
print('OK!')
else:
print('NO')

#리스트가 빈값인지 확일할때
str = []
#len(str) 할 필요없다.
if not str:
print('리스트가 비어있다.')



#while문
count = 0;
while count < 5:
print(count)
count += 1

#break문사용
count = 0;
while True:
if count == 5:
break;
print(count)
count += 1

#continue문사용
#2가출력 안된다.
count = 0;
while True:
if count == 5:
break;

if count == 2:
count += 1
continue
print(count)
count += 1

#while else문
#break가 없을때 else문을 실행해라
count = 0
while count < 5:
print(count)
count += 1
else:
print('끝났다')


조건문

- 조건의 개수가 적을때 if문, 많을때는 switch문을 사용한다. 


if문

- if문 내부의 조건을 검사해 프로그램의 진행 결로를 결정한다.

- if문은 조건의 개수가 많지 않을때 사용하는것이 유리하다.


if (조건1) {

//조건 1에 부합할 때

}else if (조건2) {

//조건 1에 부합하지 않고 조건2에 부합할 때

}else{

//위 조건들에 모두 부합하지 않을때

}


실습 내용


실습 결과


Switch문

- 다양한 조건이 존재할 때 사용하면 소스코드를 짧게 유지할 수 있다.

- 조건을 정확히 판별할때 유용하게 사용가능하다.

- swtich문은 조건에 부합하는 경우 아래쪽의 case도 모두 만족시킨다.

- 따라서 일반적인 경우case문의 마지막에 break를 넣어 특정부분만 실행시키도록한다.


switch (확인 대상) {

case 값1:

//값 1에 부합할 때

break;

case 값2:

//값 2에 부합할 때

break;

Default:

//모든경우

}


실습 내용


실습결과




반복문


for문

- for문 내부의 조건에 부합하면 계속해서 실행한다.

- 반복문을 탈출하고자 하는 위치에 break 구문을 삽입한다.

주의할점

- 무한루프

+ 무한루프란 종료 조건 없이 무한반복되는 것을 말한다.

+ 일부러 무한루프를 만드는 경우는 거의 없고 개발자의 실수로 인해 발생한다.


for( 초기화; 조건; 반복 끝 명령어) {

//반복적으로 실행할 부분

}


실습 내용

실습 결과



while문

- while문의 조건에 부합하면 계속해서 반복한다.

- 반복문을 탈출하고자 하는 위치에 break 구문을 삽입한다.

while (조건) {

//반복적으로 실행할 부분

}


실습 내용


실습 결과


중첩된 반복문(2중for문)

- 중첩된 반복문이란 반복문 내부에 다른 반복문이 존재하는 형태의 반복문을 말한다.

- 반복문이 중첩될수록 연산 횟수는 제곱형태로 늘어난다.


실습내용


실습결과


for문과 while문의 관계

- 모든 for문은 while문으로 변경할 수 있으며 모든 while문은 for문으로 변경할 수 있다.

- C언어 소스코드가 최적화 되면서 어셈블리어 단에서는 동일한 명령어로 동작한다.

조건문

 if 

 구문은 조건하에 명령문을 수행하는 것이다.

 switch 

 구문은 선택된 명령문을 수행하는 것이다.


if문

if <-첫번째 조건이다.

else if <-바로 위에 조건에 부합하지않는다면 체크한다.

else <-위에 모든 조건에 부합하지않는다면 실행한다.

ex)
if(조건) {

실행할 로직

}else if(조건) {위에 조건에 부합하지 않는다면 체크한다.

실행할 로직

}else{위에 모든 조건에 부합하지 않으면(나머지 경우) 실행한다.

실행할 로직

}

switch문

case에는 변수를 넣을 수 없고 값만 들어간다.

switch(변수){

case "비교변수":

break;

default://나머지

}


if문 문 사용 코드.


switch 문 사용 코드.


숫자비교 방법

x == y <- x는 y와 같다.

x != y <- x는 y와 다르다.

x > y <- x는 y보다 크다.

x < y <- x는 y보다 작다.

x >= y <- x는 y보다 크거나 같다.

x <= <- x는 y보다 작거나 같다.


문자열비교 방법

equals

"text" == "text"

->결과 true로 나오긴 하지만

text글자를 비교한것이 아니라

메모리 위치를 비교한 것이다.

자세한 설명->

2018/01/25 - [개발 소발/개발 java] - java 문자열 개념, 문자열 비교


"text".equals("text")

->equals가 text란 글자로 비교하는 것 이다.

     즉, equals를 사용하는 게 맞다.


!"text".equals("text")

->"text".equals("text")의 반대

text와 다르다 의미이다.



+ Recent posts