R语言中的switch函数用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言中的switch函数用法相关的知识,希望对你有一定的参考价值。

参考技术A R语言中的switch与其它语言中的switch有很大区别。

在R中,switch函数的语法形式如下:

其中,expr为表达式,其值或为一个整数值或为一个字符串;list为一个列表。

运行机理:若expr的计算结果为整数,且值在1~length(list)之间时,则switch()函数返回列表相应位置的值。若expr的值超出范围,则没有返回值(老版本的R中返回NULL)。

例1:

由该例可知,x的值为2,则switch函数根据传入的值2,输出列表中的第2个值:国家纳米科学中心。

例2:看看下面两个例子的输出值是多少:

若switch()中的参数list是有名定义时,则当expr等于元素名时,返回变量名对应的值,否则没有返回值。

例3:

you.like<-"fruit"

switch(you.like, drink="water", meat = "beef", fruit = "apple", vegetable="cabbage")

我们使用switch函数的这一性质可以定义一个函数实现多种操作:

R语言的switch结构是常用的一种结构
工具/原料

R语言开发环境
R语言开发工具

方法/步骤

打开R语言开发工具,RGui
R语言switch的使用方法

先定义一个向量

R语言switch的使用方法

使用for结构对switch进行循环输出

R语言switch的使用方法

编写switch结构的语言
R语言switch的使用方法

回车后,根据print函数输出switch函数的结构
R语言switch的使用方法
6

应用解析:for对向量bd进行循环,
通过print对switch定义的结构判断结构中符合向量的要求,
然后把符合要求的输出!

switch语句用法规则

switch也是c语言中比较常见的一种函数,前面学这个的时候只是记了一个大概的用法,也没怎么练习

今天上c语言实训课的时候被同学问了一个关于switch的题目,我选错了。所以回来重新整理一下这个函数的要点。

先来看一下今天他问那个题目:

例题:若有一下变量定义:

float x; int a, b;

则正确的switch语句是( )。

A.switch(x){            B.switch(a){            C.switch(b){            D.switch(a+b){

case 1.0:printf("*\n");        case 1 printf("*\n");         case 1:printf("*\n");        case 1:printf("*\n");

case 2.0:printf("**\n");        case 2 printf("**\n");         default:printf("\n");        case 2:printf("**\n");

}                 }                   case 1.0+2:printf("");         default:printf("\n");

                                    }                  }

这题答案: D

A.错在switch语句中只能用int,char型变量,对于其他的变量只能用else if语句。

B.case 后面的变量要有 冒号“ :”。

C.同A一样的错误。

 

整理一下,switch用法

  • case后面只能跟一个值(加冒号:),而不能是一个表达式 

  • switch(表达式) 后面没有分号(;)

  • {}前后没有分号(;)

  • default语句可以出现在任何位置,但建议写到最后,表示除去case匹配之外的其它情况。也可以没有default语句

 

switch语句规则:

  • case标签必须是常量表达式(constant Expression) 只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。 

  • case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

  • 如果两个case语句间没有break,则执行完匹配的case语句后,会顺序执行下面的语句,直到遇到break语句或switch结束

  • 连续的两个case语句表示,这两个case是同一种情况

 

再来一段代码练习练习

//给出一百分制成绩,要求输出成绩等级‘A’、’B’、‘C’、‘D’、‘E’。90分以上为‘A’ ,80~89分为’B’ ,70~79分为‘C’...
#include <stdio.h>
main()
{
    int grade;
    printf("请输入你的成绩:");
    scanf("%d",&grade);
    switch(grade/10)    ////除10,把题目给的分数区间转化为一个数,方便作为选择  
    {
case 10:        //在题目中,100也算90分以上都算A,所以不需要再对它进行输出了  
        case 9:printf("A\n");break;
        case 8:printf("B\n");break;
        case 7:printf("C\n");break;
        case 6:printf("D\n");break;
        default:printf("E");break;
    }
}

 

以上是关于R语言中的switch函数用法的主要内容,如果未能解决你的问题,请参考以下文章

c语言 switch的用法

c语言中while 、for、switch、case的用法?

R语言_list()函数用法

switch case和return的用法

c语言中switch怎么用?

R语言_read.table()函数用法