https://metime.tistory.com/116
위의 반복문에서 오늘은 추가로 while을 더 배웠다.
먼저 정리부터 해보자.
1. ifelse(반복문이라기보다는 함수)
다중 fetch가 가능하여 서로 다른 대상에 대해 동시에 조건 전달 또는 연산이 가능하다. 그리고 벡터의 원소별 반복을 하며 for문을 사용하지 않고도 첫 번째 원소를 가져와서 조건검사 및 연산을 수행한다. 그러나 복잡한 프로그래밍 기능은 구현할 수 없다.
2. for문
반복할 대상이 정확히 명시되어있는 경우 사용한다(시작과 끝 값이 명확). 그리고 일반적으로 다중 fetch가 불가하다(하나의 for문에 여러 대상에 대한 반복을 수행하는 행위). 이 부분은 위치기반 for문으로 작성하면 깔끔하게 리턴이 된다.
3. while문
반복할 대상이 정확히 명시되어있지 않고 조건의 참/거짓에 따라 반복 수행한다(시작값과 끝 값이 명확하지 않음)
while문을 본격적으로 나가기 전에 다중 fetch가 필요한 경우에 대항 연습을 하였다.
student.csv 데이터를 사용하여 3, 4학년인 경우 남자이면 A반, 여자이면 B반, 1, 2학년의 경우 C반으로 반편성을 하려고 한다. 각 학생의 반을 출력하여라(ifelse문, for문 두 방법으로 문제 풀이)
먼저 ifelse로풀이한 방법이다.
다음은 for문을 이용하여 풀었다.
while문
조건이 참이면 계속 반복하는 구조이다(조건 base: ~ 할 때까지).
초기값 정의가 필요하며 조건에 의해 반복의 마지막 지점의 정의 또한 필요하다.
다음값 정의도 필요하다.
위 내용은 예제를 적용해보며 확인해보자
예제로 1부터 100까지의 총 합(누적합)을 계산해보자.
먼저 for문으로 풀어보겠다.
위와 같이 해결하는 데에 있어서 일반화 시키는 과정이 중요하다.
일반화 시키는 과정은 아래처럼 하면 된다.
i vsum
1 1
2 (1) + 2
3 (1+2) + 3
4 (1+2+3) + 4
5 (1+2+3+4) + 5
... => vsum + i
9
10
while 문으로 풀이하면 아래와 같다.
이번엔 while문을 이용하여 1부터 100까지 홀수만 더해보자
산술 연산자를 조금만 언급하고 넘어가자면,
사칙연산: +, -, *, /
거듭제곱: ^, **(파이썬은 **만 가능), 2^4, 2**4
7%/%3: 7을 3으로 나눈 몫 (trunc(7/3) 도 가능)
7%%3 : 7을 3으로 나눈 나머지
'배우기 > 복습노트[R과 분석]' 카테고리의 다른 글
[복습] R(programming language) R의 join + 복습후기(20231127) (0) | 2023.11.28 |
---|---|
[복습] R(programming language) NA와 NULL (0) | 2023.11.28 |
[실습문제] 2023. 11. 24.(금) (2문제) (0) | 2023.11.28 |
[복습] R(programming language) 반복문(for문) + 복습후기(20231124) (0) | 2023.11.27 |
[복습] R(programming language) 조건문(ifelse 함수, if문) (0) | 2023.11.27 |