介绍

首先得祝大家新年快乐呀~

大过年的,相信大家走亲访友,中午晚上酒席可是少不了了,能抽出时间来看我们的推送那一定是我们的真粉丝啦!我们就也不和其他公众号那样谈那些如何对付“有男女朋友了么”“工资多少”这类“亲戚牌”问题的话题了,我们来聊点不一样的,谈谈酒席上的游戏吧。

酒席上喝酒要干什么呢?劝酒?对!行酒令?对!不过我们有 R 自然得让 R 帮我们做点什么,这个小程序就是为骗酒劝酒而生的!记得下次去酒席,拿着它甩过去,喝!…(#¥%#¥%&…别拦着我,我还能喝#¥#&%#……)

另,想知道上面两个“亲戚牌”刁钻问题的答案,可以参考我们的上一篇推送哦~(什么?看了还是不知道?没男女朋友买花追去啊!没工资去花店打工啊!…诶诶诶,那边那位,放下你手上的鸡蛋,有话好说,不要砸我,今年是鸡年…啊)

代码

Drink <- function(x1, x2) {
  s1 <- 7
  s2 <- 8
  s3 <- 9
  x <- x1 + x2
  if(x < s1)
    "you are lucky! You needn’t do anything!"
  else if(x < s2)
    "Add some wine in the cup as you like please!"
  else if(x < s3)
    "Drink half wine in the cup please!"
  else
    "Drink all wine in the cup please!"
}

演示

Drink(1,2)
## [1] "you are lucky! You needn’t do anything!"
Drink(3,4)
## [1] "Add some wine in the cup as you like please!"
Drink(3,5)
## [1] "Drink half wine in the cup please!"
Drink(4,5)
## [1] "Drink all wine in the cup please!"
Drink(2,6)
## [1] "Drink half wine in the cup please!"
Drink(4,6)
## [1] "Drink all wine in the cup please!"
Drink(1,4)
## [1] "you are lucky! You needn’t do anything!"

点评

该说的前面都说了…我们还是好好看看程序吧。这个 Drink() 函数让用户输入两个参数,对参数求和之后于内置变量进行比较,然后根据比较结果来判断喝酒、添酒或是发呆。其用 ifelse if 语句组成一个严谨的逻辑,在这种多判断条件的选择结构下,用 else if 语句可以让逻辑更加清晰,是个很棒的选择。判断的临界值也用局部变量储存,在之后如果想修改也可以非常方便。

不过,这程序没有说明输入的两个参数有着什么意义,看样子作者是想指掷两次骰子的点数吧?如果是这样,可以用注释或者程序提示来说明一下会更好。当然,如果是骰子的话,那就可以参考一下之前的那个掷骰子小程序,直接把掷骰子给在程序里实现了就更方便啦。