특정한 문장블록을 반복하고자할때 반복문을 사용할수있다.
반복문의 경우 프로그래머가 횟수를 정하여 컨트롤 할수있다.
반복문은 대표적으로 3개의 함수가 존재한다.
1. for loop
2. while loop
3. do-while loop
for 함수의 구성은 다음과 같다.
for( initialization; condition; increase) statements;
- initialization : 초기화 해주는 지점이다, 시작점
- condition : 조건이다. 반복횟수
- increase: 증감이다. 증가, 감소 되는 횟수를 지정해주는곳.
// C 스타일
#include<stdio.h>
void main(){
for(int i = 0; i < 10; i++){
printf("hello world\n");
}
fgetc(stdin);
}
#include<iostream>
using namespace std;
void main(){
for(int i = 0; i < 10; i++){
cout<<"hello World"<<endl;
}
}
첫번째 초기화 부에선 : int i 정수형 변수 i 를 생성하였고, 값을 0으로 초기화 해주었다.
두번째 조건부 : 변수 i 가 10보다 작을경우 반복문을 계속 실행한다는 뜻이다. 만약 i값이 10을 넘을경우
반복문은 종료된다.
세번째 반복문은 i값이 1씩 증가한다.
만약 i 값이 2씩 증가하려면 어떻게 해줘야할까?
i 라는 변수값에 어떠한 값을 넣어야 2씩 증가할지 생각해보자.
연산자 부분을 보고 생각해보면 쉽다.
증감부에 i는 독립적이지않고, for 문 안에 존재하는 변수라 생각하면 쉽습니다.
for(int i =0; i < 10; i+=2)
2중으로 for 문을 사용할수 있습니다.
#include<stdio.h>
void main(){
for(int i = 0 ; i< 5; i++){
for(int k = 0; k < 2; k++){
printf("This is k loop \n");
}
printf("This is i loop \n");
}
fgetc(stdin);
}
#include<iostream>
using namespace std;
void main(){
for(int i = 0 ; i< 3; i++){
for(int j = 0; j < 5; j++){
cout<<"This is j loop"<<endl;
}
cout<<"This is i loop"<<endl;
}
}
* 특별한 상황을 제외하곤, 반복문은 2중 이상 사용하는것을 자제해야한다.
반복문을 2중 이상으로 사용할경우, 성능 문제, 버그 발생의 원인이 된다.
다음과 같이 무한 루프를 할수있습니다.
#include<stdio.h>
void main(){
for(;;){
}
}
하지만 다음과 같은 무한루프는 프로그램에 큰 문제를 만들여지가 존재하므로 프로그램은 중단해줘야합니다.
루프를 중단하기위해 ' break ', 'return' 키워드를 사용할수 있습니다.
break 키워드를 이용해 루프를 중단 할수있습니다.
단, break는 switch, for, while, do-while 에서 만 사용할수 있습니다.
return 의 경우 해당 블록단을 반환하고 종료하기때문에 서브 함수에서 반환을 해야할경우 사용됩니다.
#inlcude<stdio.h>
void main(){
for(int i = 0; i < 5; i++){
printf("%d",i);
break;
}
}
#include<iostream>
using namespace std;
void main(){
for(int i = 0; i < 5; i++){
cout<<i<<endl;
return;
}
}
아직 함수와 조건문의 개념을 배우지않았으니.간단히 넘어가시면 됩니다.
1. 50보다 작은 5의 배수를 출력하세요.
시작을 변수 5로부터 시작하고 i 루프 조건문을 50보다 같거나 작게 해주고 증감부분에 5씩 증가해주면 된다.
#include<iostream>
using namespace std;
void main(){
for(int i = 5; i<= 50; i+=5){
cout<<i<<endl;
}
}
2. 1단 ~ 9단 까지 구구단을 출력하세요
for loop를 이용하여 아래 와같이 별을 출력하세요.
3-1
2중 루프를 사용해야한다.
#include<stdio.h>
void main(){
for(int i = 0 ; i < 5; i++){
for(int k = 0 ; k <= i; k++){
printf("*");
}
printf("\n");
}
fgetc(stdin);
}
3-2
3-3
Flow control [Conditional Statements] (0) | 2021.04.04 |
---|---|
Loop- 2 (0) | 2021.04.04 |
c/c++ Gitignore file (0) | 2021.03.30 |
Basic Input & output (0) | 2021.03.14 |
C/C++ Constant (0) | 2021.03.14 |
C/C++ Operators (0) | 2021.03.13 |