在编程中,萨摩遇到了一个常见的功能需要实现,即对某多功能程序展示菜单给用户进行向导和选择。比如:
在进行编码时,老师给与的建议是对用户输入的数据进行多个if判断,从而进行相应的代码功能段。代码示例:
if(input=="0") { break; } else if(input=="1") { #region 添加数据 #endregion } else if(input=="2") { #region 删除数据 #endregion } else if(input=="3") { #region 修改数据 #endregion } else if(input=="4") { #region 升序排列 #endregion } else { Console.Write("输入有误!");
Continue; }
因为大量出现的if让强迫症的萨摩有点生理不适,故情急之下想起了因为不常用而快要淡出记忆海之外的switch选择,因为其“case”选择的都是固定的值,日常处理问题时有一定局限性,才惨遭遗忘,但用在这里有限的几个菜单选择,且选项的编号都是定值的情形再适合不过。本着能省一个代码就省一个代码的原则,萨摩尝试了一下用switch选择来实现这个功能。代码示例:
switch (input) { case "1": #region 添加数据 #endregion continue; case "2": #region 删除数据 #endregion; continue; case "3": #region 修改数据 #endregion continue; case "4": #region 升序排列 #endregion continue; default: Console.Write("输入有误!”);
实践发现,对于菜单的引导功能,switch选择和if判断都可以顺利实现。在编码操作中,个人经验上if判断更直观,所敲代码数switch选择也并没有明显的简化。现实中深入编码工作,因为switch选择所要实现的功能if判断都能实现,而反之,却不一定。由于switch选择的局限性,使用频率不高,可能很多初学者对于switch选择,相对来说会陌生许多。虽然即使不会运用switch选择并不会影响我们的编程,但既然存在这种功能的代码,还是应该多尝试使用,至少若有一天遇到用switch选择编写的内容,要知道是什么意思。而对于switch选择在运行速度和效率上和if判断的区别,目前所学知识尚不足以解释,但推测正是这方面的原因,让switch选择有其闪光点。总之,无论如何,这是萨摩对于编码多样性的一种尝试。