R语言开发之决策结构(判断语句)了解下

决策结构要求程序员指定要由程序评估计算或测试的一个或多个条件,以及如果条件被确定为真(true),则执行指定的一个或多个语句;可选地,如果条件被确定为假(false)则执行其他语句。我们来看下大多数编程语言中的典型决策结构的一般形式的流程图:

R提供以下类型的决策语句:

序号语句说明
1if语句一个if语句由一个布尔表达式,后跟一个或多个语句组成。
2if…else语句一个if语句可以跟随一个可选的else语句,当布尔表达式为false时,该else中的语句将被执行。
3switch语句switch语句允许测试一个变量,与一个值列表相比较。

先来看if语句,一个if语句由一个布尔表达式,后跟一个或多个语句组成,在R语言中创建if语句的基本语法如下:

if(boolean_expression) {
   // statement(s) will execute if the boolean expression is true.
}

如果布尔表达式的值为真(true),则if语句中的代码块将被执行。如果布尔表达式的计算结果为假(false),则if语句结束后的第一组代码(在关闭大括号之后)将被执行,来看下流程图:

来看实例:

输出结果如下:

一个if语句可以跟随一个可选的else语句,当布尔表达式为false时执行else语句中的语句块代码,在R语言中创建if..else语句的基本语法如下:

if(boolean_expression) {
   // statement(s) will execute if the boolean expression is true.
} else {
   // statement(s) will execute if the boolean expression is false.
}

如果布尔表达式求值为真(true),那么将执行if语句中的代码块,否则将执行else语句中的代码块,来看下流程图:

示例如下:

 输出结果为:

我们要注意下,这里 “Truth” 和 “truth” 是两个不同的字符串。

一个if语句可以跟随一个可选的else if...else语句,这对使用单个if...else else语句来测试各种条件非常有用,当使用ifelse if, else语句时我们要注意以下几点:

  • if语句可以有零个或一个else,但如果有else if语句,那么else语句必须在else if语句之后。
  • if语句可以有零或多else if语句,else if语句必须放在else语句之前。
  • 当有一个else if条件测试成功,其余的else...ifelse将不会被测试。

如下在R中创建if...else if...else语句的基本语法如下:

if(boolean_expression 1) {
   // Executes when the boolean expression 1 is true.
} else if( boolean_expression 2) {
   // Executes when the boolean expression 2 is true.
} else if( boolean_expression 3) {
   // Executes when the boolean expression 3 is true.
} else {
   // executes when none of the above condition is true.
}

示例如下:

 输出结果为:

switch语句允许测试一个变量,与一个列表中的值相比较。 每个值被称为情况(case),并且对于每种情况检查被接通开关变量,在R语言中创建switch语句的基本语法如下:

switch(expression, case1, case2, case3....)

我们来看下适用于switch语句的一些规则:

  • 如果表达式的值不是字符串,则被强制转化为整数。
  • switch内可有任意数量的case语句。 每个case语句后跟要比较的值和冒号。
  • 如果整数的值在1nargs() - 1(最大参数数)之间,则对条件的相应元素进行求值并返回结果。
  • 如果表达式计算为字符串,则该字符串与元素的名称匹配(正好)。
  • 如果有多个匹配,则返回第一个匹配元素。
  • 没有默认参数可使用。
  • 在不匹配的情况下,如果有一个未命名的元素,则返回其值。(如果有多个此类参数返回错误)。

来看下流程图:

示例如下:

 输出结果为:

好啦,本次记录就到这里了。

如果感觉不错的话,请多多点赞支持哦。。。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值