goto語句

C#中的goto语句:使用方法、注意事项及替代方案 使用标签标识符(通常是一个有意义的单词后跟冒号)来标记目标语句。标签标识符是大小写敏感的,并且必须在同一作用域内。 阅读详情
 对于goto语句,在c/c++中就已经被不推荐使用了,在java中根本就没有goto的存在了,为什么c#中又重新使用goto语句呢?

首先了解一下c#中的goto语句用法:
1)基本的作用还是和以前一样,用户跳到Label的地方执行语句。
//exp1 有效代码
{

  
{
    
     
goto labelA;
    
  }

labelA:

}



2)但是在c#中,goto只允许在一个语句块内跳出,或者在一个语句块内的一个地方跳到另一个地方;
3)不允许goto从一个语句块外面跳入一个语句块内部的。
//exp2.1 有效代码
//goto在同语句块内跳转
{

  
{
    
    
goto labelA;
    
    
    labelA:
    
  }



}



//exp2.2无效代码
//goto从语句块外跳入语句块内【错误】
{

  
{
    
    
goto labelA;  //错误,不允许跳入一个语句块内部
    
     
{
       
       labelA:
       
     }

  }



}

4)与goto对应的Label后面必须有跟随有效的语句,即不允许将Label放在一个语句块的最后面。
//exp3 无效代码
{

  
{
    
    
goto labelA;
    
  }


labelA:   
//Error: labelA后面应当跟随有效语句。
}

以上是goto语句的基本用法,而goto在C#中唯一有用的地方就是和switch语句结合起来使用,在其他地方,请记住goto语句也是不被推荐使用的。
了解一下switch语句的语法形式:
switch(expression)
{
   
case 1:
        .. 
//(1)错误语法: 没有加break语句跳出
   case 2:
        ..
        
break;
   
case 3:    //(2)正确语法:同样没有加break语句跳出
   case 4:
         .
         
break;
   
default:
       .
        
break;
}

//对比一下以上两处case末尾同样没有加break语句,
//但是一处是正确一处是错误的,仔细可以看出(1)处case后面跟有语句,(2)处则没有跟任何语句。
//这样,我们可以知道,在C#中,(1)的用法是不被允许的,而(2)的用法则是被允许的。
//也就是说,接连的两个case,如果前面一个case语句后面没有跟任何有效语句,则会自动跳入到下个case,
//但是如果前一个case语句后面跟有任何有效语句,则不允许直接跳入下面一个case的。
//▲这里有需要用到goto语句来跳入下一个case了

switch(expression)
{
   
case 1:
        .. 
         
goto case 2; //(1)正确语法
   case 2:
        ..
        
break;
   
case 3:    //(2)正确语法:同样没有加break语句跳出
   case 4:
         .
         
break;
   
default:
       .
        
break;
}


//实际上这里的goto也充当了break的作用了,
//这里说明一点,C#的switch语句是不允许case和case之间穿越的。只能借助goto语句来实现这个功能。
//至于为什么要定义成这样 ,那应该就是MS的部分大师的编程习惯了。
//PS.c#是允许包含0个语句的switch部分流程控制继续(穿越)执行下一个switch部分。
C语言中的goto语句及其在C#中的用法 在编程语言中,goto语句是一种控制流语句,它允许程序跳转到程序中的指定位置。虽然goto语句在C语言中是合法的,但它往往被认为是一种不良的编程实践,因为它可能导致程序结构混乱和难以理解。尽管C#中的goto语句的用法受到了限制,但在某些情况下,它仍然可以作为一种有效的控制结构使用。但是,为了保持代码的清晰性和可读性,应该谨慎使用goto语句,并尽量使用更结构化的控制流语句,如条件语句和循环语句,来实现程序的逻辑。C#中的goto语句只允许跳转到位于当前方法内的标签位置,而不允许跳转到方法之外的位置。 阅读详情

相关推荐

c#goto语句使用

使用goto语句搜索图书string[] G_str_arry=new string[] { "C#范例宝典", "最优化", "英语", "图像处理", "matlab基础教程", "马克思主义哲学", "科学社会主义", };//定义数组并初始化

c#入门-goto语句

goto语句可以用来跳转当前执行的语句。早在循环发明前可以用来代替循环使用。但在循环发明后,因为循环更可观,安全,逐渐的不建议使用goto语句。如果一个程序里到处包含goto语句,那么可读性极差。你需要找到下一句跳转执行的语句在哪里,理解成本会很大。对程序也不好。即将运行的指令都是按顺序存放的,上窜下跳性能也会有影响。但是goto可以执行比循环更复杂的跳转,不依赖于循环就能跳转到一个无关的地方,或者一次性跳出多层循环。

zms9110750的博客 4462

鸿蒙实战开发教程-注册登录页面

在密码输入框中,只要设置TextInput的类型就可以实现带眼睛logo的密码输入框效果:

2401_82546228的博客 3559

C#goto语句

goto语句的用法非常灵活,你可以用它实现很多功能,但是由于goto语句的跳转影响程序的结构,在使用的时候会使人迷茫,所以一般"教材"上都不建议使用,但是用它可以实现递归,循环,选择功能,使用起来也很方便,存在即有价值,大家在使用上做适当取舍就好,觉得需要用就用,不必因拘泥而刻意不去用. goto 的意思是跳转到的意思,那么跳转到哪里呢,当然是跳转到另一个语句,如何标示这个要跳...

762

Zephyr RTOS线程间通讯实战:消息队列与信号量的5个经典应用场景

本文深入探讨了Zephyr RTOS中线程间通讯的核心机制,通过消息队列与信号量的组合,详细解析了传感器数据处理流水线、命令分发系统、日志记录、资源池管理以及周期性任务协同调度等5个经典应用场景。这些实战模式为构建高效、稳定且可维护的嵌入式多线程系统提供了清晰的设计蓝图和代码范例。

tomato的博客 94

DeepSeek-R1模型+Dify实战:5步打造能读PDF的智能客服(附BGE-M3嵌入模型配置)

本文详细介绍了如何利用DeepSeek-R1大模型与Dify平台,结合BGE-M3嵌入模型,构建企业级智能文档问答系统。通过5个步骤,从环境准备到知识库构建,再到智能问答应用开发,帮助企业快速从PDF等文档中提取关键信息,提升工作效率。特别适合处理产品手册、内部规程等专业内容。

convnet3designer的博客 719

goto语句

goto语句 goto语句在C语言中可以实现无条件跳转,通过和if语句的有效组合也可以实现循环结构。 1、goto语句的标准形式 goto语句由关键字goto和一个代码中存在的标号名组成。标准形式如下所示:goto标号名; 其执行逻辑为:当程序执行这一句后,将无条件跳转到标号名所在位置,然后执行该位置后的代码。 标号的命名规则与变量名的命名规则相同,都必须由字母、数字和下画线组成,且第一个字符必须...

qq_46166537的博客 1万+

25年PINN创新点大盘点!

在科研论文的激烈角逐中,想轻松产出高含金量成果?物理信息神经网络(PINN)堪称“宝藏研究方向”,是冲击高分区论文的绝佳赛道!对于渴望发表优质论文的科研伙伴,这三大研究路径值得重点关注。首先是自适应PINN,在PINN训练过程中,物理方程与实测数据间的矛盾常常导致权重调节困难,而恰好直击这一痛点,是极具价值的研究方向。其次,同样前景广阔,传统多物理场同时训练效果欠佳,如今分阶段训练方法脱颖而出,成效显著且竞争较小。最后,探索及多任务学习等技术的融合,能实现优势叠加,碰撞出创新火花。

Malaai的博客 1970

goto语句用法

goto语句:跳转到指定的位置。 如何书写goto语句 goto语句 其实和switch语句有一点书写的相似性, 下面是写法: 自定义名称 : 语句 ; 例如: kel: printf(“这个位置”); 上面这个语句中 kel 是自定义的,后面加上冒号,再接上语句。 goto语句用法 如下面代码 int main() { int x=0; goto kel; printf("ye...

时间荒野的博客 3万+

torchsparse安装

torchsparse安装以及安装失败原因分析和解决

AI_BING_的博客 1万+

Python 爬虫实战:亚马逊 + eBay 商品信息跨平台抓取(价格 / 销量 / 评价对比)

亚马逊和 eBay 是全球知名的电商平台,拥有海量的商品信息。对于消费者来说,比较不同平台上的商品价格、销量和用户评价可以帮助他们找到性价比最高的商品。对于商家而言,了解竞争对手的商品信息有助于优化自身的产品策略和定价策略。然而,手动在两个平台上逐一比较商品信息是非常耗时且低效的。因此,开发一个能够自动抓取并对比这两个平台商品信息的爬虫工具具有重要的实际意义。

yansideyucsdn的博客 615

c++ goto语句

这是一种不提倡的做法,它会使得程序的执行循序变得混乱,cpu需要不停地进行跳转,效率比较低,而且goto语句任何程序可以修改,程序中如果出现多处相同的标签会使得程序逻辑变得复杂,因此,在开发中时慎用goto语句。如果程序中出现上述情况,可以在标签后面添加一个可执行的语句就行了,以解决编译错误,比如添加一行打印输出语句。如果添加goto语句后,改变程序的执行顺序,例如运行完cout...

Restless Breeze 1万+

实验2 存储器设计与实现【计算机组成原理】

实验2 存储器设计与实现【计算机组成原理】

小心星的博客 2398

goto语句的总结整理

前两天做管理系统做的不是很好,为进步,我参考学习了一位学姐的代码。注意到学姐使用到了goto语句,我就把这一部分也看了一下。goto语句在现在的代码中并不多见,主要是因为有的人认为goto语句...

jinyu_mobao的博客 1万+

1个PID回路如何连接2个执行器(算法和代码)

我们先看下位置型PID的控制框图:2、PID是基于error的控制 所以反馈信号跳动、干扰非常大的话,对PID的闭环控制影响是非常大的,所以对于反馈信号、一定要抗干扰和滤波处理。3、下图是增量型PID的控制框图:4、一个PID输出回路如何连接2个执行器?(有些系统会设置热阀和冷阀才能满足控制要求)。

RXXW_Dor的博客 1810

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

c++中goto语句用法

goto只能在函数体内跳转,不能跳到函数体外的函数。即goto有局部作用域,需要在同一个栈内。 需要在要跳转到的程序段起始点加上标号。如下例中的part2。 1.goto 语句可用于跳出深嵌套循环 #include using namespace std; int main() { for(int i=0;i<10;i++) for(int j=0;j<10;j++) for(in

HAN Kai 8万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# goto语句

一、C# goto语句 goto语句把控制交给由标记标识符命名的语句。 语法格式如下: goto label; ...... label: ...在C#中,任何语句都可以被标记。语句标记后紧跟一个冒号,一个标记标识符。 常用的格式如下: goto identifier; // 标签 goto case constant-expression; // switch-case标签 goto default; // switch语言中的...

LYBWWP 5806

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

如何理解goto语句

一、程序描述 goto语句可以简单理解为“无条件“”转移语句(无视任何情况),在C语言中可以随意滥用goto语句和标记跳转的标号。虽然从理论上说goto语句是没有必要的,没有它也可以写出程序,但是在某些场景下goto语句非常好用,可以终止程序在某些深度嵌套的结构处理过程,可以从大量嵌套的语句中直接跳转出来。break只能跳出一层循环,利用goto语句可以跳出多层循环。 但是,goto语句容易造成很多麻烦,容易让代码变得不好理解,产生问题,所以应当慎用。 二、程序要点 1、利用goto语句实现无限循环 不断打

weixin_43738789的博客 2338

C语言之 goto语句怎么了?

goto语句怎么了?为什么说goto的不可以随意使用?用goto怎么不好了?

Yummy的博客 4769

C++goto语句用法

C++goto语句用法 目录 C++goto语句用法 1、goto语句 2、代码演示 1、goto语句 goto语句又叫跳转语句,可以跳转到标志语句,执行下面操作; goto 标记; A 标记: B A语句不执行,执行B语句 2、代码演示 #include<iostream> using namespace std; int main() { //goto语句 cout << "1" << endl; cout << "2

ISP行业的忠实粉丝 4196

PL/SQL中GOTO语句和标签

在PL/SQL中也提供GOTO语句,其语法是 GOTO label; 这里label是在PL/SQL块中定义的标签.标签是用双箭头括号括起来的.当执行GOTO语句的时候,控制会立即转到由标签标识的语句. 1.对于GOTO的限制 a.对于块,循环或者IF语句而言,想要从外层跳到内层是非法的. b.使用GOTO子句从一个IF子句跳到另一个子句中也是非法的. 

朝着梦想 渐行前进 6782

goto语句为啥不受待见

什么是goto语句 goto语句被称为C语言中的跳转语句。用于无条件跳转到其他标签。它将控制权转移到程序的其他部分。goto语句一般很少使用,因为它使程序的可读性和复杂性变得更差。语法 goto label; goto语句示例 让我们来看一个简单的例子,演示如何使用C语言中的goto语句。 打开Visual Studio创建一个名称为:goto的工程,并在...

dishi6869的博客 1357
上一篇: 正則表達式
下一篇: c#摄像头编程实例
msikruby
博客等级 码龄19年 11粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值