⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 call和goto的异同点.txt

📁 DOS和批处理技术 这些是我长期学习积累下来的总共有47个文件
💻 TXT
字号:
@echo off&title DOS资源站 www.cmdos.net

echo 早上好!
goto :noon
echo 该睡觉了!&pause>nul

:noon
    echo 中午好!
:night
    echo 晚上好!

pause>nul
执行结果:


  Quote: 
早上好!
中午好!
晚上好!
[按任意键退出] 
 


@echo off

echo 早上好!
call :noon
echo 该睡觉了!&pause>nul

:noon
    echo 中午好!
:night
    echo 晚上好!

pause>nul
执行结果:


  Quote: 
早上好!
中午好!
晚上好!
[按任意键]
该睡觉了!
[按任意键]
中午好!
晚上好!
[按任意键退出] 
 


从上边两个例子我们已经可以很明白的看出call和goto的异同点了:

相同点:call和goto都可以将流程跳转到标签处。
不同点:goto将流程跳转到标签处后,程序从标签处开始执行到结束,整个流程执行完毕;call将流程跳转到标签处后,程序从标签处开始执行到结束[1],然后会跳转回执行call的下一条语句,直到整个流程执行完毕;所以call并不会像goto那样打乱了流程,它只是中断了当前流程,但仍保证整个流程按原顺序进行。

[1]在第二个例子中我们可以在标签后适当的地方调用goto :eof,使流程提前结束,提前将流程转移call的下一条语句:

@echo off

echo 早上好!
call :noon
echo 该睡觉了!&pause>nul

:noon
    echo 中午好!
goto :eof
:night
    echo 晚上好!
goto :eof

pause>nul
执行结果已和例二有所不同,先显示:


  Quote: 
早上好!
中午好!
该睡觉了! 
 


按任意键后接着显示"中午好!",到goto :eof后退出!
很显然,如果在例一中加入goto :eof则只是提前结束了流程。


本文来自:DOS资源站(www.cmdos.net) 详细出处参考:http://www.cmdos.net/article/sort01/info-1450.html

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -