`
Eileenlml
  • 浏览: 72871 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

流程跳转:goto

    博客分类:
  • bat
 
阅读更多

一般的批处理命令,都是按照自上而下的流程逐行执行的,也就是说,只有第一行的命令执行了之后,才可能执行第二行,第二行执行完之后,再执行第三行……如此依次执行。
  如果对不同的情况,需要执行不同的既定操作,若还是按照常规的执行流程的话,是无法完成任务的,这个时候,就需要引入流程跳转的概念,动用流程跳转语句 goto 了。流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。
  先来看个例子:假设需要判断用户输入的是A还是B,代码可以写成这样:

@echo off
set /p input=请输入字母A或B:
if "%input%"=="A" goto A
if "%input%"=="B" goto B
pause
exit

:A
echo 您输入的字母是A
pause
exit

:B
echo 您输入的字母是B
pause
exit

 

按照一般的执行流程,所有的代码都会自上而下逐行执行一次,结果将显示"您输入的字母是A"和"您输入的字母是B"这两行内容,很显然,这是达不到我们的要求的;但是,实际的结果是:如果您输入的字母非A即B,则结果只会显示"您输入的字母是A"或者"您输入的字母是B";也就是说,代码的执行顺序发生了改变,不再一成不变地自上而下逐行执行了:当输入字母A后,将执行第一条if语句,此条语句执行后,将跳转到标签段:A,从而绕过了第一条if语句和:A之间的所有代码行;当输入字母B后,将执行头两条if语句,当执行完第二条if语句后,将跳转到标签段:B,从而绕过了第二条if语句和:B之间的所有代码行。

  从上面的例子可以看到,要让goto语句起作用,还需要:A或:B之类的标签段的配合。所谓的标签段,就是这样的一些代码块:在首行上以单个冒号打头,其后紧跟一串字符,第二行及其之后的所有行为代码语句行。在这里,第一行的冒号是标签标志,紧跟它之后的字符串是标签名,两者合称标签。goto语句后面的部分为标签名,指引着该语句执行完之后该跳到转何方,标签则接收goto语句的跳转指令,引导着goto语句的后续操作。goto语句和标签互相呼应,在实现流程跳转时相辅相成,缺一不可。

  下面说一下使用跳转语句goto的注意事项:

  1、goto语句和标签要互相呼应,不能只有goto语句而没有相应的标签段,否则,程序将找不到相应的标签段而直接退出;只有标签段而没有goto语句是允许的,但不能实现流程跳转功能,从代码精简的角度来看,有标签段而没有goto语句,则此标签是多余的,可以精简掉;
  2、若有多个标签段,则需要注意标签段之间是否需要添加合适的退出语句来终止程序继续向下执行,这是很多新手很容易犯错的地方,需要谨慎。以上面这段代码为例,如果去掉:A和:B之间的exit语句,那么,当输入字母A之后,结果将同时显示"您输入的字母是A"和"您输入的字母是B"这两行内容,而保留exit语句将只会在显示"您输入的字母是A"后,按任意键推出批处理程序,因为批处理是自上而下逐行执行的,即使用goto语句跳转之后,在新的位置上,这一执行流程仍然会保持,直到碰上另一个流程跳转语句,执行过程并不会在两个标签段之间自动终止。
  3、标签名只可以使用常量,而不能使用变量;
  4、若有同名的标签段,将执行位于最顶层的标签段,其后的标签段是否得到执行,将视具体的情况加以处理。

分享到:
评论

相关推荐

    适合新手bat入门教程

    6. **流程跳转:goto.txt**: `goto`命令用于跳转到批处理文件中的某个标签,实现程序流程控制。例如,`goto label`会跳转到标有`label`的地方继续执行。 7. **重命名文件(夹):ren.txt**: `ren`或`rename`...

    Goto跳转模块.rar

    在编程领域,"Goto"语句是一种控制流程的指令,它允许程序无条件地跳转到代码中的另一行。这个“Goto跳转模块”可能是针对易语言(E Language)设计的一个模块,用于增强程序的流程控制能力。易语言是中国自主研发的...

    计算机二级C语言考点归纳:goto语句及语句标号的使用.docx

    但是,goto语句也存在一些缺点,例如,它可以使得代码的阅读和维护变得困难,因为goto语句可以使得程序的流程变得复杂难以跟踪。 在实际开发中,goto语句的使用需要谨慎,应该尽量避免使用goto语句,尽量使用其他...

    易语言跳转指令

    在易语言中,“GOTO”是跳转指令,用于实现程序流程的无条件转移,是控制流程的一种基本手段。理解并熟练运用GOTO指令对于编写易语言程序至关重要。 GOTO指令的基本语法是在程序中插入一个标签(Label),然后在...

    Matlab中的goto函数

    在MATLAB编程环境中,`goto`函数是一种控制流语句,用于实现程序流程的非顺序执行,即跳转到程序中的指定行继续执行。虽然在许多现代编程语言中,`goto`被认为是一种“有害”的编程构造,因为它可能导致代码难以理解...

    EXIT 与 GOTO :EOF 在批处理中的区别

    这样,`GOTO :EOF` 可以用作一种优雅的退出机制,特别是在多层嵌套的逻辑结构中,避免了不必要的流程跳转。 举个例子,假设我们有以下的批处理脚本: ```batch @echo off setlocal enabledelayedexpansion if "%1...

    易语言-易语言Goto跳转模块

    获取系统进程信息源码例程程序使用置入汇编代码的方法实现程序代码的Goto跳转。点评:易语言Goto跳转模块源码是易语言汇编应用例程。注意:跳转最好只在同一个子程序内进行,跳到其他子程序会发生局部变量混乱 子...

    易语言源码易语言Goto跳转模块源码.rar

    Goto语句在许多编程语言中都是一个基础的控制流程指令,它允许程序执行非顺序的跳转,常用于复杂的条件分支或循环结构中。 在易语言中,Goto语句的使用方式可能与传统C、PASCAL等语言有所不同。易语言的语法结构...

    php goto加密解密

    `goto`可以打破程序的常规流程,使得代码可以从一个地方跳转到另一个地方。例如: ```php start: // 一些代码... goto end; // 跳过这部分代码 someCode: // ... end: // 继续执行的代码... ``` 2. ...

    易语言Goto跳转模块源码-易语言

    1. **Goto语句**:这是基础的跳转指令,它允许程序在执行时中断当前流程,跳转到标签(Label)指定的位置。在易语言中,Goto语句的使用格式可能类似于 `跳转 标签名`。 2. **标签(Label)**:标签是Goto语句的目标...

    php goto解密脚本源码

    3. **控制流程**:使用`goto`来决定如何处理解密后的数据,例如根据解密结果的特定状态进行跳转。 4. **错误处理**:在解密失败时,可能需要记录日志或返回错误信息。 在分析`gotojiemi`这个压缩包的源码时,你应该...

    VB GoTo语句用法实例

    在VB(Visual Basic)编程语言中,GoTo语句是一种流程控制语句,它允许程序执行非线性的跳转,即从当前代码行跳转到程序中的其他任意标记行。这种跳转方式在某些情况下非常有用,但也可能导致复杂的代码结构,增加...

    单片机跳转指令学习

    其中`GOTO`是最常用的无条件跳转指令之一,它可以实现程序流程的任意跳转,非常灵活。 #### 示例程序分析 接下来,我们结合给出的部分内容,具体分析一下跳转指令的使用。 ```c #include main() { #asm CLRF ...

    Goto跳转模块

    在编程领域,"Goto"语句是一种非结构化编程的控制流机制,它允许程序在执行过程中直接跳转到程序中的任何其他位置。在易语言中,Goto语句同样用于实现这样的功能,但其使用需谨慎,因为过度依赖Goto可能会导致代码...

    jiemian_goto_QT、界面跳转_

    2. 使用QWizard:如果你的应用需要向导式的步骤流程,可以使用QWizard。QWizard提供了一种预定义的界面布局,用户可以按顺序完成各个步骤。 3. 使用QMainWindow和QDockWidget:在复杂的GUI应用中,你可能需要使用...

    易语言简单实现跳转循环源码

    在易语言中,实现跳转循环是编程过程中常见的控制流程操作,这有助于执行重复任务或根据条件改变程序的执行路径。下面我们将深入探讨易语言中的跳转循环及其相关知识点。 1. **基础循环结构** - **For...To...Loop...

    基于PHP的炫酷黑色网址安全跳转GO跳转PHP源码.zip

    在PHP中,没有标准的“goto”语句,但可以模拟类似的行为,例如通过函数递归或自定义流程控制结构。 6. 源码结构:一个良好的PHP项目应该有清晰的文件和目录结构,可能包括了独立的PHP文件、样式表(CSS)和脚本...

    matlab开发-GoTo

    在MATLAB编程环境中,"GoTo"通常指的是跳转到程序中的特定标签或行号,以便执行特定的代码块。这种功能在处理复杂的程序逻辑时非常有用,它允许程序员控制程序流程,使其能够灵活地在代码的不同部分之间移动。下面...

    C#goto语句查询源代码

    在C#编程语言中,`goto`语句是一种流程控制工具,它允许程序无条件地跳转到程序中的另一个标签(label)位置。虽然在某些特定情况下,`goto`可以提供简洁的解决方案,但通常不建议频繁使用,因为它可能会使代码变得...

    goto高性能解密2021.zip

    “goto”是PHP中的一个控制流程关键字,用于无条件地跳转到程序的任意位置。在某些复杂的代码逻辑中,goto语句可能会被用到,但它在编程界一直存在争议,因为它可能导致程序结构混乱,不易维护。然而,对于已经使用...

Global site tag (gtag.js) - Google Analytics