您好,登錄后才能下訂單哦!
cmd 中如何使用goto命令,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
代碼如下:
@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
按照一般的執(zhí)行流程,所有的代碼都會自上而下逐行執(zhí)行一次,結(jié)果將顯示"您輸入的字母是A"和"您輸入的字母是B"這兩行內(nèi)容,很顯然,這是達不到我們的要求的;但是,實際的結(jié)果是:如果您輸入的字母非A即B,則結(jié)果只會顯示"您輸入的字母是A"或者"您輸入的字母是B";也就是說,代碼的執(zhí)行順序發(fā)生了改變,不再一成不變地自上而下逐行執(zhí)行了:當(dāng)輸入字母A后,將執(zhí)行第一條if語句,此條語句執(zhí)行后,將跳轉(zhuǎn)到標(biāo)簽段:A,從而繞過了第一條if語句和:A之間的所有代碼行;當(dāng)輸入字母B后,將執(zhí)行頭兩條if語句,當(dāng)執(zhí)行完第二條if語句后,將跳轉(zhuǎn)到標(biāo)簽段:B,從而繞過了第二條if語句和:B之間的所有代碼行。
從上面的例子可以看到,要讓goto語句起作用,還需要:A或:B之類的標(biāo)簽段的配合。所謂的標(biāo)簽段,就是這樣的一些代碼塊:在首行上以單個冒號打頭,其后緊跟一串字符,第二行及其之后的所有行為代碼語句行。在這里,第一行的冒號是標(biāo)簽標(biāo)志,緊跟它之后的字符串是標(biāo)簽名,兩者合稱標(biāo)簽。goto語句后面的部分為標(biāo)簽名,指引著該語句執(zhí)行完之后該跳到轉(zhuǎn)何方,標(biāo)簽則接收goto語句的跳轉(zhuǎn)指令,引導(dǎo)著goto語句的后續(xù)操作。goto語句和標(biāo)簽互相呼應(yīng),在實現(xiàn)流程跳轉(zhuǎn)時相輔相成,缺一不可。
下面說一下使用跳轉(zhuǎn)語句goto的注意事項:
1、goto語句和標(biāo)簽要互相呼應(yīng),不能只有g(shù)oto語句而沒有相應(yīng)的標(biāo)簽段,否則,程序?qū)⒄也坏较鄳?yīng)的標(biāo)簽段而直接退出;只有標(biāo)簽段而沒有g(shù)oto語句是允許的,但不能實現(xiàn)流程跳轉(zhuǎn)功能,從代碼精簡的角度來看,有標(biāo)簽段而沒有g(shù)oto語句,則此標(biāo)簽是多余的,可以精簡掉;
2、若有多個標(biāo)簽段,則需要注意標(biāo)簽段之間是否需要添加合適的退出語句來終止程序繼續(xù)向下執(zhí)行,這是很多新手很容易犯錯的地方,需要謹(jǐn)慎。以上面這段代碼為例,如果去掉:A和:B之間的exit語句,那么,當(dāng)輸入字母A之后,結(jié)果將同時顯示"您輸入的字母是A"和"您輸入的字母是B"這兩行內(nèi)容,而保留exit語句將只會在顯示"您輸入的字母是A"后,按任意鍵推出批處理程序,因為批處理是自上而下逐行執(zhí)行的,即使用goto語句跳轉(zhuǎn)之后,在新的位置上,這一執(zhí)行流程仍然會保持,直到碰上另一個流程跳轉(zhuǎn)語句,執(zhí)行過程并不會在兩個標(biāo)簽段之間自動終止。
3、標(biāo)簽名只可以使用常量,而不能使用變量;
4、若有同名的標(biāo)簽段,將執(zhí)行位于最頂層的標(biāo)簽段,其后的標(biāo)簽段是否得到執(zhí)行,將視具體的情況加以處理。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。