用R创建计算器

时间:2017-09-20 18:48:58

标签: r

我其实是新来的。我想在R编程中创建一个简单的计算器,结合readline()函数和不同的函数 这是我目前的代码:

add <- function(x, y) {
  return(x + y)
}
subtract <- function(x, y) {
  return(x - y)
}
multiply <- function(x, y) {
  return(x * y)
}
divide <- function(x, y) {
  return(x / y)
}
factors <- function(x) {
  if(choice <=5){
  choice <- readline(prompt="Enter the number: ")
  print(paste("The factors of",x,"are:"))
  for(i in 1:x) {
    if((x %% i) == 0) {
      print(i)
    }
  }}
}
print("******Simple R Calculator - Select operation:")
print("1.Add")
print("2.Subtract")
print("3.Multiply")
print("4.Divide")
print("5.Factors")
print("6.Prime")
choice = as.integer(readline(prompt="Enter choice[1/2/3/4/5/6]: "))
num1 = as.integer(readline(prompt="Enter first number: "))
num2 = as.integer(readline(prompt="Enter second number: "))
operator <- switch(choice,"+","-","*","/")
result <- switch(choice, add(num1, num2), subtract(num1, num2), multiply(num1, num2), divide(num1, num2), factors(i))
print(paste(num1, operator, num2, "=", result))

当我运行此功能时,它要求输入第一个数字和第二个数字以获得结果。但对于“选择”号5和6,我不希望弹出第一个数字和第二个数字,而只需要一个数字。 请帮助我们,并澄清我是否可能不太清楚我的问题。 感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这听起来像是一个基本的if语句是你正在寻找的。如果我理解正确的问题,如果选择是5或6,你不想提示2个数字。试试这个:

if (choice == 5 | choice == 6) {
  num1 = as.integer(readline(prompt="Enter number: "))
} else {
  num1 = as.integer(readline(prompt="Enter first number: "))
  num2 = as.integer(readline(prompt="Enter second number: "))
}