平时碰到分支条件判断最常用的是if else语句,不过有时要是分支条件太多用switch就更直观,方便一点.先举两个简单的例子.
C++:
int num = 2;
switch(num)
{
case 1:cout<<"one";break;
case 2:cout<<"two";break;
case 3:cout<<"three";break; //break可省略
default:cout<<"default";break; //default 非必须,可以省略
}
C#:
int num = 2;
switch (num)
{
case 1: Console.WriteLine("one"); break;
case 2: Console.WriteLine("two"); break;
case 3: Console.WriteLine("three"); break; //break不能省略
default: Console.WriteLine("default"); break; //default 可省略.
}
C++,C#中swith的用法几乎是一模一样了.只有一些细小的差别,C#在C++的基础上做了一点改进.
区别:
1. C++中switch()括号中的变量类型只能是整形或者能默认转换成整形.比如int,long,bool,char,enum.(当然表达式也行,只要结果符合前面条件).但float,double,string就不行.另外自定义的类型,比如某个class,如果类中有运算符重载,class能默认转换成int.那也可以.不过大部分时候还少会在switch中用到自定义的类型吧
C#中switch()括号中的变量类型可以是byte,short,int,long,bool,enum另外还有string,这个在C++中是不行的.跟c++一样,可以用表达式,但float,double是不行的.自定义类型如可转换也行.
2. C++中break是可以省略的.但这样容易造成一个问题.如果没有break当某个分支符合条件执行完了后,会接着执行后面的分支.在上面的例子中,如果break全部去掉.结果会是twothreedefault
而C#要你强制性使用break,不用的话在编译时就会报错.这样就不会犯C++中因忘记写break而出现的错误.
补充:其实也可以用return替换break.只不过return是表示退出整个函数,而break只是退出switch这个语句块.
如果switch的语句块中的逻辑比较复杂还可以综合使用goto语句.
比如
int num = 2;
bool check = false;
switch (num)
{
case 1: Console.WriteLine("one"); break;
case 2: Console.WriteLine("two"); goto label;
case 3: Console.WriteLine("three"); break;
label: default: Console.WriteLine("default"); break;
}
当然很多很多人都说过在写代码时尽量另用goto语句,不得万不得已少用了.
分享到:
相关推荐
在项目中遇到了使用switch语句判断条件,但问题是条件比较多,大概有几十个条件,满屏幕的case判断,是否有更优雅的写法替代switch语句呢? 假设有这样的一个场景:商场经常会根据情况采取不同的打折方案,如果...
2、switch语句,C#中case后面可根字符串,如case “abc“,但在C++中却不行,C++中case后面只跟数字,字符,和枚举。 3、在C#中没有C++中的私有继承和保护继承,只有公有继承。 4、C#中可以通过关键字sealed把一个类...
c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] 51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct ...
本文特别适合有 C++ 基础却没有太多精力学习 C# 的读者。 关于作者 Aisha Ikram 我现在在英国一家软件公司任技术带头人。我是计算机科学的硕士。我主要使用 .NET 1.1/2.0, C#, VB.NET, ASP.NET, VC++ 6, MFC, ...
C++是游戏编程的首选语言,但我相信C++能做到的C#也能做到。 本篇介绍用C#编写一个俄罗斯方块程序的原理,以及在C#里面播放声音,保存游戏设置的方法。 游戏界面预览: 菜单预览: 自定义每个小方块...
C#求解(与C,C++思路不同的另一种思路) private int Fact(int n) { //1+2+…+n=n*(n+1)/2=(n^2+n)/2; int[,] array=new int[n,n]; int NPower2 = array.Length; //NPower2=n*n int iElement = NPower2 + n;//i...
这在c,c++,java等其他各主流语言中都是不可以的,唯独c#可以。 例如string a=”haha”; 代码如下: switch(a) { case “dfj”: … break; case “djkfdjkf”: …. break; case “haha”:
C#.NET是微软公司推出的一种类型安全的、现代的、简单的、由C和C++衍生出来的面向对象的编程序语言。掌握C#.NET的特点、程序结构、集成开发环境、C#语言的基本知识等,是利用好C#的前提。。using System; namespace...
1.4.1 学习C++ 4 1.4.2 C++标准 5 1.4.3 属性 5 1.4.4 控制台应用程序 5 1.4.5 Windows编程概念 6 1.5 集成开发环境简介 7 1.5.1 编辑器 8 1.5.2 编译器 8 1.5.3 链接器 8 1.5.4 库 8 1.6 使用IDE 8 ...
无论是刚开始接触面向对象编程的新手,还是打算转移到c#的具有c,c++或者java基础的程序员,都可以从本书中吸取到新的知识。 作译者 john sharp,content master首席技术专家。content master隶属于cm集团,cm集团...
In fact, the power of C# and the easy-to-learn syntax persuaded many developers to switch to it from C++ or Java. The C# 2005 version (also referred to as C# 2.0) added even more powerful features to...
热门Tag JAVA C++ linux C# 教程 C语言 android 源码 PDF 编程 sql c Windows matlab ORACLE 源代码 api 中文 数据库 arm JavaScript 破解 数据结构 vc visual jQuery 计算机 答案 单片机 php JSP mfc .NET 中文版 ...
本文特别适合有 C++基础却没有太多精力学习 C#的读者。 目录 野比经验交流系列(C#) 前言 .................................................................................4 说明 ......................
本文以实例代码实现了C#根据数字序号输出星期几,用户可通过输入数字0~6,输出星期各天的英语单词,程序中主要是演示if语句和switch语句的用法,当然其中的英文可以改成中文。 具体实现代码如下: //Select.cs程序...