switch语句变量类型和return值
switch(变量)语句变量是有严格控制的,如string类型和float类型编译就会报错,它⽀持char, int, short, long等等(仅限于C和C++中,在C#中则可以通过)
另外对于switch语句中的返回值不同的语⾔也有不同的限制,如C++语⾔和C#语⾔,看下⾯两段代码
#include<iostream>
#include<string>
using namespace std;
class pro
{
private:
int numberA;
int numberB;
public:
pro(int A,int B)
{
numberA=A;
numberB=B;
}
int operation(char op)
{
switch(op)
{
case '+':
return numberA+numberB;
break;
}
}
};
int main()
{
pro p(5,8);writeline输出数值变量
cout<< p.operation('+')<<endl;
getchar();
return 0;
}
C++语⾔中在switch中没有硬性的返回值,仅仅在case语句中有返回值,编译运⾏⽆误。但是在C#语⾔就不⾏了看下⾯⼀段代码using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
private int numberA;
private int numberB;
int result;
public int operation (string stroperation)
{
switch(stroperation)
{
case"+":
result=numberA + numberB;
break;
}
return result;
}
static void Main(string[] args)
{
Program Pro = new Program();
Pro.numberA = 1;
Pro.numberB = 2;
Console.WriteLine(Pro.operation("+"));
}
}
}
在以上的C#代码如果直接在case语句中返回⼀个numberA + numberB; ⽽没有后⾯的return result;编译运⾏是通不过的。这应该是C#编译器更为安全的控制⽅式,防⽌case语句都没有执⾏,⽽⽆返回结果造成程序运⾏错误,因此在case语句中加⼊抛出异常是很有意义的!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论