if..else if ..else .. 如果不写最后的else.. 规范吗?谢谢。

WOWER2010_3 2010-03-15 10:10:16
if..else if ..else .. 如果不写最后的else.. 规范吗?谢谢。


//只是举个例子
if(a==5)
{
}
else if(a==6)
{
}


我知道追求这个不会为客户为公司带来几百万的收入,我知道写不写可能差别并不是很大。。。

我只是想知道是否规范。。我只是想知道这样写有什么弊端或者什么优点。。。我。。。唉。。愁人。。。


谢谢。。。
...全文
16317 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
怀远布衣 2011-11-16
  • 打赏
  • 举报
回复
补充一下,小弟刚刚在msdn论坛上发帖询问,得到的答复是不要写空语句else,有高手给出了理由,有兴趣的朋友可以看看
http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/b222a28f-c46a-4f2f-89b5-72f4b1ebc6c5

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ee1bf81f-576d-420c-b621-2eb6e17209ad/
yjl6691088 2010-03-16
  • 打赏
  • 举报
回复
这么热闹啊!
个人见解 if(){...}else if(){...} 这个后面的 else 写不写要看情况。if(){...} 这个括号最好还是打上虽然不打不会错,但也不会为程序运行减轻任何负担 ,打上的话 代码看起来更规范点 一块一块的 有错也好找点
WOWER2010_3 2010-03-16
  • 打赏
  • 举报
回复
default是空的,和else 是空的,不一样吗??
G_cofa 2010-03-16
  • 打赏
  • 举报
回复
这种,用switch 吧,而且default 一定要写,即使是空的。 另外一个else,看情况写不写,或者是不写,或者 else { assert(false); }
aasa11 2010-03-16
  • 打赏
  • 举报
回复
只要你们公司自己内部能统一就成,没有什么大问题的
ForestDB 2010-03-16
  • 打赏
  • 举报
回复 4

if (conditionA) {
do_something_A;
} else if (conditionB) {
do_something_B;
} else {
// 做些事当既不是A也不是B;
}

// 做其他任何事,与上述条件无关;

所谓逻辑清晰,就是当没有(做些事当既不是A也不是B;)的情况,就把最后的else略去,否则放个空的
else在那里反而会干扰思维;
不过也可以明确的写出这个else,但最好加上注释(// 其他情况什么都不做;),这样就一目了然,减少对这里逻辑的考虑。
好的代码自己会说话。
我是-稻草人 2010-03-16
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
ForestDB 2010-03-16
  • 打赏
  • 举报
回复
逻辑清晰为上。
myhid 2010-03-16
  • 打赏
  • 举报
回复
汗死。。。还说自己逻辑很清晰。。。。。。。。
鸭梨山大帝 2010-03-15
  • 打赏
  • 举报
回复
讨论这个问题真的这个有点跟讨论孔乙己关于回字的四个写法一样了.呵呵

如果是if(条件) + 一句语句

if(a==5){就是一句();}

if(a==5)就是一句();

实在没区别,你喜欢多打个{},少打个{},真的是个人喜好了.


static void Main(string[] args)
{
if (5 == 5) Console.Write("1");

if (5 == 5) {
Console.Write("2");
};
}


IL代码如下:


.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 21 (0x15)
.maxstack 8
IL_0000: ldstr "1"
IL_0005: call void [mscorlib]System.Console::Write(string)
IL_000a: ldstr "2"
IL_000f: call void [mscorlib]System.Console::Write(string)
IL_0014: ret
} // end of method Program::Main


如果if(条件) + 多句语句,就肯定需要 {} 了.

另外关于
if(条件1){
do something A
}elseif{
do something B
} else{
do something C
}
写不写最后一个else的逻辑区别 11楼 vrhero 已经解释得很清楚了


[Quote=引用 17 楼 wower2010_3 的回复:]
我的逻辑很清晰。。。以前我都是写的。只是突然看到一位高人的代码中else if 之后没有写else ,我突然想到是不是自己一直写的不够好。。

还有例如
if(a==5)
{
//xxxxxxxxxx
}
的写法 和
if(a==5)
//xxxxxxxxxx

的写法,也不知道谁好谁差。。

教科书上是第一种。。MSDN是第二种。。。唉~
[/Quote]
WOWER2010_3 2010-03-15
  • 打赏
  • 举报
回复
谢谢大家!!!
sunxqun 2010-03-15
  • 打赏
  • 举报
回复
争论的好热闹啊,没有争论就没有提高
WOWER2010_3 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 ojlovecd 的回复:]
如11楼的代码所示,根本就是两种不同的逻辑,写不写最后的else是由程序逻辑决定的,根本就跟规范扯不上任何的关系
至于只有一行代码的情况要不要加花括弧,取决于自己的习惯以及团队的统一,就我本人而言我是不会加花括号的,因为花括弧多了我容易眼花,但为了与其它人保持一致,我会加上。同理,这跟规范也扯不上关系。[/Quote]

受教。。。可以结贴了。。。收获大大的。。
月之点点 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 vrhero 的回复:]
引用 4 楼 msblast10 的回复:
LS不懂别乱说
表面上没事
如果没有写else 系统会自动搜索命令 当然搜索完不存在的 所以没有执行 但是这大大减慢了系统运行速度
所以还是写上

你这才叫不懂乱说...

看看下面两个逻辑相同吗?看不明白的补习中学数学去...

C# code
//只是举个例子
if(a==5)
{
//doing A
}
else i……
[/Quote]

顶。。。2个逻辑就是一样
我姓区不姓区 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 wower2010_3 的回复:]
我的逻辑很清晰。。。以前我都是写的。只是突然看到一位高人的代码中else if 之后没有写else ,我突然想到是不是自己一直写的不够好。。

还有例如
if(a==5)
{
//xxxxxxxxxx
}
的写法 和
if(a==5)
//xxxxxxxxxx

的写法,也不知道谁好谁差。。

教科书上是第一种。。MSDN是第二种。。。唉~
[/Quote]
如11楼的代码所示,根本就是两种不同的逻辑,写不写最后的else是由程序逻辑决定的,根本就跟规范扯不上任何的关系
至于只有一行代码的情况要不要加花括弧,取决于自己的习惯以及团队的统一,就我本人而言我是不会加花括号的,因为花括弧多了我容易眼花,但为了与其它人保持一致,我会加上。同理,这跟规范也扯不上关系。
WOWER2010_3 2010-03-15
  • 打赏
  • 举报
回复
我的逻辑很清晰。。。以前我都是写的。只是突然看到一位高人的代码中else if 之后没有写else ,我突然想到是不是自己一直写的不够好。。

还有例如
if(a==5)
{
//xxxxxxxxxx
}
的写法 和
if(a==5)
//xxxxxxxxxx

的写法,也不知道谁好谁差。。

教科书上是第一种。。MSDN是第二种。。。唉~
criedshy 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wower2010_3 的回复:]
以前在学校时被老师训过,留下阴影了。。。

老师说,既然有if else if ,那肯定要有else 的。。
[/Quote]

太教条了吧

和应用用关
我姓区不姓区 2010-03-15
  • 打赏
  • 举报
回复
一个这么简单的逻辑问题怎么会牵扯到规不规范上……
误导与被误导貌似越来越明显……
yufenghua 2010-03-15
  • 打赏
  • 举报
回复
我也觉得这是符合规范的
lujiabin880424 2010-03-15
  • 打赏
  • 举报
回复
自己看咯。
加载更多回复(12)

62,234

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧