• 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);
      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语句中加入抛出异常是很有意义的!

  • 相关阅读:
    Boost线程库学习笔记
    sizeof运算符
    用法char ch=getchar()正确性详解
    C语言中的缓冲输出
    算术运算的溢出行为 and 一个数内存中表示1的个数
    ARP、RARP、ICMP、ping
    http和https协议
    关于宋词频率统计(R语言)
    Backbone.js API中文文档
    腾讯小Q书桌图标怎么实现的啊?
  • 原文地址:https://www.cnblogs.com/sheshouyanhun/p/2683891.html
Copyright © 2020-2023  润新知