C#中switch语句为什么必须添加default? 5C

C#中switch语句为什么必须添加default?是因为安全性吗,求大神指教

c#

27个回答

作为一个使用了C#十几年的人,我还真没听说C#必须用default,你是从哪里得知这一规定的。表示非常震惊。

default语句是为了防止出现case判断全部不匹配时程序出错的状况

加上default可增加代码可读性

就像if else if ,后面要有else一样

确实可以理解为一种安全的编程方式
我个人理解,其作用为:防止不进入分支的错误。因为有的时候,我们在写程序的时候,可能会有考虑不到的情况。
而default一方面可以帮助我们避免不进入分支的错误,另一方面可以帮助我们发现我们未考虑到的情况(可以在default中抛出异常信息)

ElegyWine
ElegyWine 也算是一种固有的编码格式吧,
大约一年之前 回复
weixin_39985106
weixin_39985106 有点类似if else吧
大约一年之前 回复
nbzdds08
nbzdds08 另外,补充一点,default不是必须要有的。但强烈建议保留default
大约一年之前 回复

我觉得有两个方面的原因:
1、代码的可读性
即使考虑了所有的case,添加了default分支也可以提高代码的可读性。
2、可以避免不必要的错误
default分支中添加一些打印语句,当正常的分支无法处理时,进入default分支,可以让开发者看到当前代码的走向。
可以在default分支中加入适当的打印信息,方便代码调试。

严谨,易读,写上不会有错,不写可能会出错。

不是必须的,在case都不满足的时候,程序会去找default,找不到了,就退出整个switch了,还是带上比较好

不是必须的。 switch case 语句是一个条件选择语句,找到相同的case值做为入口,执行后面的程序;若所有的case都不满足,则找default入口;若未找到则退出整个switch语句。 所以default只是一个备用的入口,有没有都无所谓

提供一种写法 这样如果都没有的情况你可以额外提供一种出口

共27条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Switch语句中的"default”case问题
[code=C#]rnusing System;rnclass Dolooprnrn public static void Main()rn rn string myChoice;rn dorn rn // Print A Menurn Console.WriteLine("My Address Book\n");rn Console.WriteLine("A - Add New Address");rn Console.WriteLine("D - Delete Address");rn Console.WriteLine("M - Modify Address");rn Console.WriteLine("V - View Addresses");rn Console.WriteLine("Q - Quit\n");rn Console.WriteLine("Choice (A,D,M,V,or Q): ");rnrn // Retrieve the user's choicern myChoice = Console.ReadLine();rn // Make a decision based on the user's choicern switch (myChoice)rn rn case "A":rn case "a":rn Console.WriteLine("You wish to add an address.");rn break;rn case "D":rn case "d":rn Console.WriteLine("You wish to delete an address.");rn break;rn case "M":rn case "m":rn Console.WriteLine("You wish to modify an address.");rn break;rn case "V":rn case "v":rn Console.WriteLine("You wish to view the address list.");rn break;rn case "Q":rn case "q":rn Console.WriteLine("Bye.");rn break;rn default:rn Console.WriteLine("0 is not a valid choice", myChoice);rn rnrn // Pause to allow the user to see the resultsrn Console.Write("Press any key to continue...");rn Console.ReadLine();rn Console.WriteLine();rn rn while (myChoice != "Q" && myChoice != "q"); rn // Keep going until the user wants to quitrn rnrn[/code]rn这段代码在VS2008中被提示“[color=#FF0000]控制不能从一个 case 标签(“default:”)贯穿到另一个 case 标签[/color]”rn请问这是怎么回事?
switch语句 default在case前的情况
public static void main(String[] args) { int num = 7; switch (num) { case 5: System.out.println(5); default: System.out.println(-1); case 3: System.out.println(3); return; c...
switch语句中的case结尾是否必须添加break语句?
一般必须在case语句结尾添加break语句。但不是一定必须的 switch(c)语句中c可以是int、long、char、unsigned int等类型,唯独不可以是float类型 我百度搜到的比较容易理解的解释如下: 一、不加break就不会跳出switch结构,不管后面条件是否符合都会执行,直到遇到第一个break才会跳出switch结构 二、switch起到的作用类似于跳转,满足s...
C#中的break与default
在swith循环中rnbreak跟default分别是什么意思??小弟基础知识实在太差劲,哎,
C/C++中Switch语句中default放在首位情况
C/C++中Switch语句中default放在首位情况 问题描述 昨天参加了讯飞的C++线上测试,卷子还算简单,但是问题出的很有趣,选择题中有一题如下: 读出最后的sum的值 #include<iostream> using namespace std; int main() { int sum = 0; for (int n = 0; n < ...
笔试题_switch语句里default位置与执行问题
default是缺省默认的意思,default在switch语句中不管放在哪都是从第一个case开始执行,当所有的case都不满足条件时,才执行default default在最后一行时下面的break可以省略不写,但如果没有在最后一行default下面需要加上break,否则执行完default后会继续执行下面的代码直到遇到break跳出循环。 如: class Demo {    
switch语句在java和c#中的区别
你还为学习java和学习c#而弄混了switch语句吗
C#与C++中switch语句区别
C#中的switch语句和C++的switch语句是有些区别的,首先看一下C#中switch语句的基本结构。     看起来跟C++的switch语句语法差不多,下面说一下区别。   在C++中,可以在运行完一个case语句后,运行另一个case语句。但是在C#中,每个case必须有个break,不允许执行完一个case后再执行下一个case。下面是缺少break时的提示。   上一条说的规
Java中switch语句真正执行顺序及default位置对结果的影响
本文主要探讨不加break情况下,default 和 case的执行顺序。 例: public class Test { public static void main(String[] args) { int i =1; switch (i) { case 3:System.out.println("3"); case 4:System.o
switch语句为什么没有执行?
#includernusing namespace std;rn#includern#includernrnvoid main()rnrnchar a;rnint b,c,result;rncin>>b>>c;rna=getchar();rnrnswitch(a)rn rncase '+': result=(b+c);break;rncase '-': result=(b-c);break;rncase '*': result=b*c;break;rncase '/': result=b/c;break;rndefault:break;rnrncout<
C# 流程控制语句_switch语句
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1008_流程控制语句_switch语句 { class Program { static void Main...
C# default关键字介绍
http://www.csharpwin.com/csharpspace/8852r1967.shtml
continue可以出现在switch语句中吗?为什么?
我写下以下语句rnint a = 1;rnswitch(a) rnrncase 1:rn continue;rncase 2:rn break;rnrnrn编译错误:非法的continue语句。(VC++)rn continue只能在for中出现(Dev-C++)rnrn对于ANSI C++有这一个标准吗,哪里可以找到?rnkenryhuang(strayer of midnight)rn
求解,struts2的struts.xml为什么必须添加namespace="/"
我用的struts2.1.但是总是报错No result defined for XXXaction and result success。n后来我在package里加了namespace="/"就好了。n这是我在别的地方找到的方法?n但是为什么会这样?这是struts2自身的bug吗?
C# default 的两种用法
在微软的官方文档中可以看到 default 关键字在 C# 的两种用法 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/default 用于 switch 语句或默认值表达式中 生成类型的默认值。对于引用类型,将为NULL;对于值类型将为零;对于结构,将为0位模式。这个通常和泛型一起使用。
为什么在switch语句中,不能用for语句?
switch(option)rn case 1: rn for(int i=0;i<100;i++)rn rn rn break;rn rnIDE会提示:不兼容的类型 要求boolean,发现int. 不是语句rn而我用while语句则可以。
mysql 给字段添加default
  alter table t_incoming_records modify incomingtime datetime default C URRENT_TIMESTAMP;   注意:修改字段用关键字modify. modify后的column可以省略。   refurl:http://doc.mysql.cn/mysql5/refman-5.1-zh.html-ch...
[c#]请问switch语句中可以用正则表达式吗
比如rnrnswitch(textString)rnrncase "abc" //我在这里想匹配以ABC打头的所有case,要怎么写?rnbreak;rnrndefault:rn....rnrnrnrn
请教为什么c#中list无法添加
首先,我定义了一个三维点的结构体n public struct thrDemPointn n public int id;n public float x;n public float y;n public float z;n public thrDemPoint(int ID, float X, float Y, float Z)n n id = ID;n x = X;n y = Y;n z = Z;n n //点结构nn然后,定义了一个List以及一个点nList thrDemPoints = new List();nthrDemPoint p1 = new thrDemPoint(1, 0, 0, 0);nn但是,向list中n thrDemPoints.Add(p1);n是无效的,萌新请问为什么...n
Java中使用switch语句的话是否必须加break?
Java中使用switch语句的话是否必须加break?
C#中default关键字用法简介
C#中default关键字可根据上下文有多种含义。switch语句中使用default处理非case匹配的默认情况。在泛型中使用default,取决于泛型类型是引用类型还是值类型,引用类型的default将泛型类型初始化null,值类型的default将泛型类型初始化为0。在类型应用中可以通过default获得缺省值,如default(int)。switch中default具体的用法: switc...
switch语句以及if和switch语句的选择
1、计算机原理,java介绍,java环境搭建n2、java语法,工具,常量、变量、表达式n3、java数据类型,运算符n4、循环,方法,数组
switch语句
Switch选择判断语句Demo
Switch语句
switch作为选择语句,实际编程中,最易出错的就是 “贯穿”现象。下面对switch做一些介绍: 1、switch语句称为情况选择语句,又称开关语句。JDK1.7之前的switch语句限定对整形数据进行判断。 switch(表达式){       case 常量值1:            代码块1;            break;       case 常量值2:
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件