R/R 실습

[R 실습] 구구단 만들기: 사용자 정의 함수, if 문, for문

Jenny Noh 2023. 10. 4. 20:22

숫자를 입력하면 구구단을 출력해주는 함수를 만들어보았습니다.

 

조건은 아래와 같습니다.

  • 입력값은 1~9 사이의 숫자
  • 입력값이 위에 해당하지 않는 값이면 "주어진 수치가 부적합합니다. 종료!" 출력

 

스크립트

jen_multiplier <- function(a){
  if(is.double(a) && a%in%c(1:9) ){
    print("구구단을 외자~! 구구단을 외자~!")
    for (b in 1:9){
      multiply <- a*b
      print(paste0(a, "*", b, "=", multiply ))
    }
  } else{
    print("주어진 수치가 부적합합니다. 종료!")
  } 
}

먼저 해당 기능을 가진 내장함수가 없기 때문에 사용자 정의함수를 작성해야합니다. 

새롭게 생성되는 함수의 이름을 'jen_multiplier'로, 매개변수를 a로 지정하겠습니다.

사용자 정의함수:

함수명 <- function(매개변수1, 매개변수2, ...) {

   함수가 구현할 내용

   ...

  return(결과값)

}

 

다음은 입력값이 조건에 부합하는지 확인하기 위해 if-else 조건문을 사용하겠습니다.

if-else 조건문:

if(조건) {

  조건이 TRUE 일 때 실행되는 구문

} else {

  조건이 FALSE 일 때 실행되는 구문

}

 

입력값 1) a가 숫자형이고, 2) 1에서 9 사이의 값을 동시에 만족하는 조건식을 작성합니다. 

1) a가 숫자형인가? => is.double(a)

여기서 is.integer(a)도 넣어봤지만 제대로 인식을 못해서 double로 확장해서 구문을 작성했습니다🥲

근데 다른 분들 쓴거 보니까 이 조건은 없어도 문자형/숫자형 구분 잘 되는 듯..

2) a가 1~9 사이의 값인가? => a %in% 1:9

 

입력값이 조건 두 개를 모두 만족시킨다면, 해당 값의 구구단을 출력해야합니다.

이때, a*1, a*2, ... a*9까지 곱셈을 연산하는 작업이 반복되므로, for 구문을 사용합니다.

for 문:

for(변수 in 반복 횟수) {

  반복 조건만큼 실행되는 구문

}

 

입력값 a와 곱해지는 값을 b로 지정한 후, b에 1에서 9까지의 숫자를 할당하여 작업을 반복합니다.

=> for(b in 1:9)

입력값 a와 변수 b의 값을 곱하여 'multiply'라는 변수에 할당해 줍니다.

=> multiply <- a*b

그런다음, 해당 식과 'multiply' 값을 print( ) 함수로 출력해줍니다. 이 때, 여러 문자열을 함께 출력하기 위해 paste( ) 함수를 사용합니다. 

=> print(paste0(a, "*", b, "=", multiply ))

 

if 조건문이 참일 때 실행되는 구문이 종료되었습니다.

조건을 만족하지 않을 때 실행되는 구문을 정의하기 위해 else { } 문을 작성해 줍니다.

=> else {     print("주어진 수치가 부적합합니다. 종료!")   } 

 

 

 

 

 

실행 결과