批处理命令——goto 和 :
談起goto,相信大家應(yīng)該想到的是面向過程編程。其實(shí),這就相當(dāng)于當(dāng)有人向你談起class,意味著你就懂得面向?qū)ο缶幊?。如果你不?#xff0c;那么你們的溝通將會(huì)很困難。不懂我說的啥意思嗎?請(qǐng)參見曾經(jīng)分享王路的一篇文章《永遠(yuǎn)不要對(duì)一個(gè)外行聊你的專業(yè)》
? 一般常規(guī)的批處理命令,按照自上而下的順序逐行執(zhí)行,也就是說,只有第一行命令執(zhí)行之后,才可能執(zhí)行第二行,第二行執(zhí)行之后,才可以執(zhí)行到第三行.....如此依次執(zhí)行。那么,如果對(duì)于不同的情況,需要執(zhí)行不同的既定操作,常規(guī)的執(zhí)行規(guī)則顯然是無法完成任務(wù)的,這種應(yīng)用場(chǎng)景下怎么辦呢?我們就需要引入流程跳轉(zhuǎn)的概念,即就是動(dòng)用流程跳轉(zhuǎn)語句goto了。流程跳轉(zhuǎn)的含義:改變默認(rèn)的執(zhí)行順序,強(qiáng)制跳轉(zhuǎn)到指定的位置執(zhí)行特定的程序塊。
為什么要把goto和冒號(hào)這兩個(gè)命令聯(lián)合起來介紹?因?yàn)樗鼈兪欠植婚_的,無論少了哪個(gè)或多了哪個(gè)都會(huì)出錯(cuò)。goto是個(gè)跳轉(zhuǎn)命令,緊跟其之后的是標(biāo)簽名;冒號(hào)是一個(gè)標(biāo)簽標(biāo)志,緊跟其之后的是標(biāo)簽名,兩者合稱標(biāo)簽。當(dāng)程序運(yùn)行到goto時(shí),將自動(dòng)跳轉(zhuǎn)到冒號(hào)定義的部分去執(zhí)行(呵呵~試想一下,是不是分不開?)。goto語句與標(biāo)簽一一呼應(yīng),在實(shí)現(xiàn)流程跳轉(zhuǎn)時(shí)相輔相成,缺一不可。
使用goto語句注意事項(xiàng):
1. 一一對(duì)應(yīng)。goto語句與標(biāo)簽要相互對(duì)應(yīng)。不允許只有g(shù)oto語句而沒有相應(yīng)的標(biāo)簽段,否則,程序?qū)⒄也坏较鄳?yīng)的標(biāo)簽段而直接退出;只有標(biāo)簽段而沒有g(shù)oto語句是允許的,但不能實(shí)現(xiàn)流程跳轉(zhuǎn)功能,從代碼精簡(jiǎn)的角度來看,有標(biāo)簽段而沒有g(shù)oto語句,則此標(biāo)簽是多余的,大可精剪。
2. 多個(gè)標(biāo)簽。若有多個(gè)標(biāo)簽段,則需要注意標(biāo)簽段之間是否需要添加恰當(dāng)?shù)耐顺稣Z句來終止程序繼續(xù)向下執(zhí)行,這是很多新手很容易犯錯(cuò)的地方,需要謹(jǐn)慎。
3. 標(biāo)簽名只可以使用常量,而不能使用變量;
舉例如下:新建一個(gè)文本文件,命名為goto,修改文件類型為bat,用Notepad++打開文件,編輯內(nèi)容如下:
1 @echo off 2 set /p input=請(qǐng)輸入字母A或B: 3 if "%input%"=="A" goto A 4 if "%input%"=="B" goto B 5 pause 6 exit 7 8 :A 9 echo 您輸入的字母是A 10 pause 11 exit 12 13 :B 14 echo 您輸入的字母是B 15 pause 16 exit
執(zhí)行結(jié)果如下:
示例分析:
如果去掉標(biāo)簽:A 和 :B之間的exit語句,那么,當(dāng)輸入字母A之后,結(jié)果將同時(shí)顯示“您輸入的字母是A”和“您輸入的字母是B”這兩行內(nèi)容,而保留exit語句將只會(huì)在顯示“您輸入的字母是A”后,按任意鍵推出批處理程序。因?yàn)榕幚硎亲陨隙轮鹦袌?zhí)行的,即使用goto語句跳轉(zhuǎn)之后,在新的位置上,這一執(zhí)行規(guī)則仍然會(huì)保持,直至碰到另一個(gè)流程跳轉(zhuǎn)語句,執(zhí)行過程并不會(huì)在兩個(gè)標(biāo)簽段之間自動(dòng)終止。還不理解??
新建一個(gè)文本文件,命名為goto1,修改文件類型為bat,用Notepad++打開文件,編輯內(nèi)容如下:
1 @echo off 2 set /p input=請(qǐng)輸入字母A或B: 3 if "%input%"=="A" goto A 4 if "%input%"=="B" goto B 5 pause 6 exit 7 8 :A 9 echo 您輸入的字母是A 10 pause 11 12 :B 13 echo 您輸入的字母是B 14 pause 15 exit
執(zhí)行結(jié)果如下:
Good? Good? Study, Day? Day? Up.
順序?? 選擇? 循環(huán)? 總結(jié)
轉(zhuǎn)載于:https://www.cnblogs.com/Braveliu/p/5077868.html
總結(jié)
以上是生活随笔為你收集整理的批处理命令——goto 和 :的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打胎多少钱啊啊?
- 下一篇: 作为一部刑侦剧,《重案六组》恐怖吗