zoukankan      html  css  js  c++  java
  • 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语句中加入抛出异常是很有意义的!

  • 相关阅读:
    Perl 基础笔记: 使用 cpanm 安装 Perl 模块
    修改CPAN安装源
    JQUERY实现点击INPUT使光标移动到最后或指定位置
    新手入门Underscore.js 中文(template)
    深入浅出C/C++中的正则表达式库
    [libxml2]_[XML处理]_[使用libxml2的xpath特性修改xml文件内容]
    Mysql事务的隔离级别
    HBase基础知识摘要
    java如何实现一个Future
    遇到过的问题整理-大量页面监控问题
  • 原文地址:https://www.cnblogs.com/sheshouyanhun/p/2683891.html
Copyright © 2011-2022 走看看