C#中goto语句,由于它的随意跳转特性,而不利于程序的编写和维护,试问它存在的意义…

作者&投稿:蛮泥 (若有异议请与网页底部的电邮联系)
C#中goto语句,由于它的随意跳转特性,而不利于程序的编写和维护,试问它存在的意义…~

goto 的一个通常用法是将控制传递给特定的 switch-case 标签或 switch 语句中的默认标签。 goto 语句还用于跳出深嵌套循环。
这个是MSDN上的例子。
class SwitchTest
{
static void Main()
{
Console.WriteLine("Coffee sizes: 1=Small 2=Medium 3=Large");
Console.Write("Please enter your selection: ");
string s = Console.ReadLine();
int n = int.Parse(s);
int cost = 0;
switch (n)
{
case 1:
cost += 25;
break;
case 2:
cost += 25;
goto case 1;//假如case1的代码很多,没有goto的话,就得又重复写上一遍,当然也可以用方法来代替,但是goto也可以很轻松的实现。
case 3:
cost += 50;
goto case 1;
default:
Console.WriteLine("Invalid selection.");
break;
}
if (cost != 0)
{
Console.WriteLine("Please insert {0} cents.", cost);
}
Console.WriteLine("Thank you for your business.");

// Keep the console open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}


————————————————————————————————————
 for(......)  {   for(....)   {   for(.....)   {   // 如何冲出重重包围?   }   }   }   
break;只能跳出单层的循环,r
eturn将整个函数都返回了,没法再继续了,显然也不行,
所以我们想到了goto

不加限制地使用GOTO语句,特别是使用往回跳的GOTO语句,会使程序结构难于理解,在这种情形,应尽量避免使用GOTO语句。但在另外一些情况下,为了提高程序的效率,同时又不至于破坏程序的良好结构,有控制地使用一些GOTO语句也是必要的。

goto语句这个东西不是太常用..
因为其实任何需求下的goto语句都可以使用循环来代替..
可能在一些极度的需求下goto语句会很好..
但是过多使用goto语句会使得程序调试和理解都变得难以理解..
甚至很多人认为程序的质量与goto语句的数量呈反比..
虽然我没有这么极端的见解..不过很多人都这么认为的话..
goto语句还是少用为好..
不过对性能其实是没什么影响的..只是难以理解而已..
毕竟只是相当于一个代码的跳转符号而已

百度的 不过依然有用
goto语句的发展历程  问题起源:  60年代中期以后,计算机硬件技术日益进步,计算的存贮容量、运算速度和可靠性明显提高,生产硬件的成本不断降低。计算机价格的下跌为它的广泛应用创造了极好的条件。在这种形势下,迫切要求计算机软件也能与之相适应。因而,一些开发大型软件系统的要求提了出来。然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难题。遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的“软件危机”。为了克服这一危机,一方面需要对程序设计方法、程序的正确性和软件的可靠性等问题进行系列的研究;另一方面,也需要对软件的编制、测试、维护和管理的方法进行研究,从而产生了程序设计方法学。  goto语句是有害的观点:  1968年,E·W·代克斯特拉首先提出“GOTO语句是有害的”论点,向传统程序设计方法提出了挑战,从而引起了人们对程序设计方法讨论的普遍重视。  goto语句的争论:  在60年代末和70年代初,关于GOTO语句的用法的争论比较激烈。主张从高级程序语言中去掉GOTO语句的人认为,GOTO语句是对程序结构影响最大的一种有害的语句,他们的主要理由是:GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。去掉GOTO语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解,便于查错,而且也有利于程序的正确性证明。  持反对意见的人认为,GOTO语句使用起来比较灵活,而且有些情形能提高程序的效率。若完全删去GOTO语句,有些情形反而会使程序过于复杂,增加一些不必要的计算量。  关于goto语句的解决方法:  1974年,D·E·克努斯对于GOTO语句争论作了全面公正的评述,其基本观点是:不加限制地使用GOTO语句,特别是使用往回跳的GOTO语句,会使程序结构难于理解,在这种情形,应尽量避免使用GOTO语句。但在另外一些情况下,为了提高程序的效率,同时又不至于破坏程序的良好结构,有控制地使用一些GOTO语句也是必要的。用他的话来说就是:“在有些情形,我主张删掉GOTO语句;在另外一些情形,则主张引进GOTO语句。”从此,使这场长达10年之久的争论得以平息。  后来,G·加科皮尼和C·波姆从理论上证明了:任何程序都可以用顺序、分支和重复结构表示出来。这个结论表明,从高级程序语言中去掉GOTO语句并不影响高级程序语言的编程能力,而且编写的程序的结构更加清晰。  goto语句的结果:  在C/C++等高级编程语言中保留了goto语句,但被建议不用或少用。在一些更新的高级编程语言,如Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使 用,使程序简洁易读;尽管如此后来的c#还是支持goto语句的,goto语句一个好处就是可以保证程序存在唯一的出口,避免了过于庞大的if嵌套。


清水河县17118827128: C#中goto语句,由于它的随意跳转特性,而不利于程序的编写和维护,试问它存在的意义… -
稻薛益他: 百度的 不过依然有用goto语句的发展历程问题起源:60年代中期以后,计算机硬件技术日益进步,计算的存贮容量、运算速度和可靠性明显提高,生产硬件的成本不断降低.计算机价格的下跌为它的广泛应用创造了极好的条件.在这种形势...

清水河县17118827128: 在c#中可以使用goto语句吗 -
稻薛益他: goto语句的用法非常灵活,你可以用它实现很多功能,但是由于goto语句的跳转影响程序的结构,在使用的时候会使人迷茫,所以一般"教材"上都不建议使用,但是用它可以实现递归,循环,选择功能,使用起来也很方便,存在即有价值,大...

清水河县17118827128: 为什么都不建议用goto语句进行跳转 -
稻薛益他: GOTO语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错.有人认为GOTO语句使用起来比较灵活,而且有些情形能提高程序的效率.1974年,D·E·克努斯对于GOTO语句争论作了全面公正的评述,其基本观点是:不加限制地使用GOTO语句,特别是使用往回跳的GOTO语句,会使程序结构难于理解,在这种情形,应尽量避免使用GOTO语句.但在另外一些情况下,为了提高程序的效率,同时又不至于破坏程序的良好结构,有控制地使用一些GOTO语句也是必要的.用他的话来说就是:“在有些情形,我主张删掉GOTO语句;在另外一些情形,则主张引进GOTO语句.”

清水河县17118827128: 谁能告诉我怎样使用goto语句,在C#中 -
稻薛益他: goto语句的用法如下: goto<labelName>; 标签用下述方式定义: <labelName>; 例如,下面的代码: int myInteger = 5; goto myLabel; myInteger +=10; myLabel; console.writeline("myInteger={0}",myInteger); 其执行过程如下:1.myInteger声明为int类型,并赋予值5;2.goto语句中断正常的执行过程,把转到标为myLabel的代码行上.3.myInterger的值写到控制台上.

清水河县17118827128: goto的优点与缺点? -
稻薛益他: 林锐在<>里面这样说的: 4.7 goto 语句 自从提倡结构化设计以来,goto 就成了有争议的语句.首先,由于goto 语句可以 灵活跳转,如果不加限制,它的确会破坏结构化设计风格.其次,goto 语句经常带来错 误或隐患.它可能跳过了某些对象...

清水河县17118827128: C#中的几种跳转语句 -
稻薛益他: 使用跳转语句执行分支,该语句导致立即传递程序控制.跳转语句中使用下列关键字:breakcontinuegotoreturn //--------------------------------------------------------------------------- break 语句终止它所在的最近的封闭循环或 switch 语句.控制传递给终止语句...

清水河县17118827128: c#中goto的用法(前辈,请讲解的详细点,谢谢) -
稻薛益他: goto语句是c#和java的区别之一 c#建设性地继承了c++的goto语句而没有删掉,是因为我们不能一棒子把goto打死,只看到它不好的一面,而没有看到它的优点. 1.goto可以做直接跳转,直接跳转在c#已经不多见了 例如 语句1... goto 标签1; 语...

清水河县17118827128: c#中的goto用法 -
稻薛益他: 一般GOTO建议只用在多重循环的跳出,其它情况尽量不用,因为可读性不高.start://标号start int myInteger = 5; goto addVal;//1.跳到标号addVal write...

清水河县17118827128: 谁能讲解一下c#中goto语句的具体用法 -
稻薛益他: 不建议用goto,会导致代码逻辑复制难懂,写程序记住第一个出发点就是让其它人看懂,因为程序需要持续维护.

清水河县17118827128: C# Goto语句如何使用 -
稻薛益他: 尝试使用了Goto语句,许多地方不建议使用goto语句,因为如果程序太长,会让人很难读懂程序的流程.不方便进行维护.但是我觉得如果在一个小类里使用goto语句,可以加快开发进程.有利有弊吧.namespace yearleapisyesno{class ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网