?? call和goto的異同點.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 + -