µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡ÈÈѪ´«Ææ¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

Éî¶È½ÒÃØ£º¼ÜÉè´«ÆæÊ±ÇÉÓÃÑ­»·½á¹¹£¬¹æ±ÜGOTOÃüÁîËÀÑ­»·ÏÝÚå

Èȶȣº
ÔÚ´«ÆæÓÎÏ·¼ÜÉèµÄ½Å±¾±à³ÌÁìÓò£¬GOTO ÃüÁî¾ÍÏñÒ»°ÑË«Èн£¡£ËüÄÜÈýű¾µÄÖ´ÐÐÁ÷³ÌÔÚ²»Í¬´úÂë¶Î¼äÁé»îÌø×ª£¬ÊµÏÖ¸´ÔÓÂß¼­£¬µ«Ò»µ©Ê¹Óò»µ±£¬¾Í¼«Ò×Òý·¢ËÀÑ­»·£¬Ê¹½Å±¾ÏÝÈëÎÞÐÝÖ¹µÄÖØ¸´£¬ÑÏÖØÓ°ÏìÓÎÏ·ÐÔÄÜÓëÎȶ¨ÐÔ¡£¶øÑ­»·½á¹¹×÷Ϊ±à³ÌÖеÄÖØÒª¹¤¾ß£¬ÄÜΪÎÒÃÇÌṩ¸üΪ°²È«¡¢ÇåÎúµÄ´úÂëÖ´ÐÐÂß¼­£¬ÓÐЧ±ÜÃâ GOTO ÃüÁî´øÀ´µÄËÀÑ­»·ÎÊÌâ¡£±¾ÎĽ«ÉîÈë̽ÌÖÔÚ¼ÜÉè´«ÆæÊ±ÈçºÎÇÉÃîÔËÓÃÑ­»·½á¹¹´ï³ÉÕâһĿ±ê¡£

## Àí½â GOTO ÃüÁîËÀÑ­»·³ÉÒò
### GOTO ÃüÁîµÄ±¾ÖÊ
GOTO ÃüÁîÔÚ´«Ææ½Å±¾ÀïÓÃÓڸıä³ÌÐòµÄÖ´ÐÐÁ÷³Ì£¬Ëü»áʹ½Å±¾Ö±½ÓÌø×ªµ½Ö¸¶¨±êÇ©´¦¼ÌÐøÖ´ÐС£ÀýÈçÒÔϼòµ¥½Å±¾£º
```plaintext
START:
Message "µ±Ç°´¦ÓÚÑ­»·ÖÐ"
GOTO START
```
Õâ¶Î½Å±¾À³ÌÐò»á²»¶ÏÊä³ö“µ±Ç°´¦ÓÚÑ­»·ÖД£¬ÒòΪûÓÐÉèÖÃÌø³öÑ­»·µÄÌõ¼þ£¬½Å±¾»áÔÚ START ±êÇ©´¦ÎÞÏÞÑ­»·£¬ÐγÉËÀÑ­»·¡£

### ËÀÑ­»·µÄΣº¦
ËÀÑ­»·»á´óÁ¿Õ¼ÓÃϵͳ×ÊÔ´£¬µ¼Ö CPU ʹÓÃÂÊì­Éý£¬Ê¹ÓÎÏ·¿Í»§¶Ë³öÏÖ¿¨¶ÙÉõÖÁ±ÀÀ£¡£Í¬Ê±£¬½Å±¾ÎÞ·¨°´Ô¤ÆÚÍê³ÉÈÎÎñ£¬ÑÏÖØÓ°ÏìÓÎÏ·µÄÕý³£ÔËÐУ¬ÆÆ»µÍæ¼ÒµÄÓÎÏ·ÌåÑé¡£

## ³£¼ûÑ­»·½á¹¹¼°ÆäÓÅÊÆ
### Ìõ¼þÑ­»·£¨WHILE Ñ­»·£©
#### Ô­Àí
WHILE Ñ­»·»áÔÚÿ´ÎÖ´ÐÐÑ­»·Ìå֮ǰ¼ì²éÒ»¸öÌõ¼þ±í´ïʽ¡£Ö»Óе±Ìõ¼þ±í´ïÊ½ÎªÕæÊ±£¬²Å»áÖ´ÐÐÑ­»·Ì壻ÈôÌõ¼þΪ¼Ù£¬ÔòÌø³öÑ­»·¡£ÕâÖÖ»úÖÆÊ¹µÃÑ­»·µÄÖ´ÐÐÓÐÁËÃ÷È·µÄÖÕÖ¹Ìõ¼þ£¬±ÜÃâÁËÎÞÏÞÑ­»·µÄ·¢Éú¡£
#### ʾÀý
¼ÙÉèÎÒÃÇҪʵÏÖ½ÇÉ«ÔÚѪÁ¿µÍÓÚÒ»¶¨ÖµÊ±²»¶Ï²¹ÑªµÄ¹¦ÄÜ£¬Ê¹Óà WHILE Ñ­»·µÄ½Å±¾ÈçÏ£º
```plaintext
# ³õʼ»¯±äÁ¿
HP = GetMyHP()
MIN_HP = 200

# WHILE Ñ­»·
WHILE HP < MIN_HP
UseItem ²¹ÑªÒ©
Delay 1000 # ÑÓ³Ù 1 Ã룬±ÜÃâÆµ·±²Ù×÷
HP = GetMyHP()
ENDWHILE
```
ÔÚÕâ¸ö½Å±¾ÖУ¬Ö»Òª½ÇÉ«µÄѪÁ¿£¨HP£©µÍÓÚÉ趨µÄ×îСֵ£¨MIN_HP£©£¬¾Í»á²»¶ÏʹÓò¹ÑªÒ©£¬Ã¿´ÎʹÓúó»áÑÓ³Ù 1 Ãë²¢¸üÐÂѪÁ¿¡£µ±ÑªÁ¿´ïµ½»ò³¬¹ý MIN_HP ʱ£¬Ñ­»·×Ô¶¯½áÊø£¬±ÜÃâÁËËÀÑ­»·¡£

### ¼ÆÊýÑ­»·£¨FOR Ñ­»·£©
#### Ô­Àí
FOR Ñ­»·Í¨³£ÓÃÓÚÒÑ֪ѭ»·´ÎÊýµÄÇé¿ö¡£Ëüͨ¹ý³õʼ»¯Ò»¸ö¼ÆÊýÆ÷±äÁ¿£¬ÉèÖÃÑ­»·µÄÆðʼֵ¡¢ÖÕÖ¹ÖµºÍ²½³¤£¬ÔÚÿ´ÎÑ­»·Ê±¸üмÆÊýÆ÷£¬µ±¼ÆÊýÆ÷´ïµ½ÖÕֵֹʱ£¬Ñ­»·½áÊø¡£ÕâÖÖ·½Ê½Äܾ«È·¿ØÖÆÑ­»·µÄÖ´ÐдÎÊý£¬ÓÐЧ·ÀÖ¹ÎÞÏÞÑ­»·¡£
#### ʾÀý
¼ÙÈçÎÒÃÇÒªÈýÇÉ«ÔÚµØÍ¼ÉÏÌØ¶¨Î»ÖÃÖØ¸´ÍÚ¾ò±¦²Ø 5 ´Î£¬Ê¹Óà FOR Ñ­»·µÄ½Å±¾ÈçÏ£º
```plaintext
# FOR Ñ­»·
FOR I = 1 TO 5
MoveTo ±¦²ØÎ»ÖÃ
UseSkill ÍÚ¾ò¼¼ÄÜ
Delay 2000 # ÑÓ³Ù 2 Ã룬µÈ´ýÍÚ¾ò½á¹û
ENDFOR
```
ÔÚÕâ¸ö½Å±¾ÖУ¬±äÁ¿ I ×÷Ϊ¼ÆÊýÆ÷£¬´Ó 1 ¿ªÊ¼£¬Ã¿´ÎÑ­»·µÝÔö 1£¬Ö±µ½´ïµ½ 5 ʱѭ»·½áÊø¡£ÕâÑù¾ÍÃ÷È·ÁËÑ­»·µÄ´ÎÊý£¬±ÜÃâÁËÒòʹÓà GOTO ÃüÁî¿ÉÄܵ¼ÖµÄËÀÑ­»·¡£

## Ñ­»·½á¹¹Óë GOTO ÃüÁîµÄ¶Ô±ÈÓ¦ÓÃ
### ¸´ÔÓÂß¼­ÖеÄÑ¡Ôñ
ÔÚһЩ½ÏΪ¸´ÔÓµÄÂß¼­³¡¾°ÖУ¬GOTO ÃüÁî¿ÉÄÜ»áʹ´úÂë±äµÃ»ìÂÒ£¬ÄÑÒÔÀí½âºÍά»¤£¬Ôö¼ÓËÀÑ­»·µÄ·çÏÕ¡£¶øÑ­»·½á¹¹¿ÉÒÔ½«¸´ÔÓµÄÂß¼­²ð·Ö³ÉÇåÎúµÄ²½Ö裬ʹ´úÂë¸ü¾ß¿É¶ÁÐԺͿÉά»¤ÐÔ¡£
ÀýÈ磬ÎÒÃÇҪʵÏÖ½ÇÉ«ÔÚÂú×ãһϵÁÐÌõ¼þϵÄÑ­»·²Ù×÷£¬Èç½ÇÉ«µÈ¼¶ÔÚÒ»¶¨·¶Î§ÄÚ¡¢±³°üÓÐ×ã¹»¿Õ¼äÇÒµØÍ¼ÉÏÓÐÌØ¶¨¹ÖÎïʱ£¬²»¶Ï¹¥»÷¹ÖÎʹÓÃÑ­»·½á¹¹µÄ½Å±¾ÈçÏ£º
```plaintext
# ³õʼ»¯±äÁ¿
LEVEL = GetMyLevel()
BAG_SPACE = GetBagSpace()
MONSTER_EXIST = CheckMonsterExist ÌØ¶¨¹ÖÎï

# WHILE Ñ­»·
WHILE LEVEL >= 10 AND LEVEL <= 20 AND BAG_SPACE > 5 AND MONSTER_EXIST
MoveTo ¹ÖÎïλÖÃ
Attack ÌØ¶¨¹ÖÎï
Delay 1500 # ÑÓ³Ù 1.5 Ã룬µÈ´ý¹¥»÷½á¹û
LEVEL = GetMyLevel()
BAG_SPACE = GetBagSpace()
MONSTER_EXIST = CheckMonsterExist ÌØ¶¨¹ÖÎï
ENDWHILE
```
Èç¹ûʹÓà GOTO ÃüÁîÀ´ÊµÏÖÏàͬµÄÂß¼­£¬´úÂë¿ÉÄÜ»á±äµÃ´í×Û¸´ÔÓ£¬ÈÝÒ׳öÏÖËÀÑ­»·£¬¶øÊ¹Óà WHILE Ñ­»·ÔòÇåÎúÃ÷ÁË£¬Âß¼­ÑϽ÷¡£

### ´íÎó´¦ÀíÓëÒì³£Çé¿ö
ÔÚ´¦Àí´íÎóºÍÒì³£Çé¿öʱ£¬Ñ­»·½á¹¹Ò²ÄܸüºÃµØ¿ØÖƳÌÐòµÄÖ´ÐÐÁ÷³Ì¡£ÀýÈ磬µ±½ÇÉ«ÔÚÖ´ÐÐij¸ö²Ù×÷ʱ³öÏÖ´íÎó£¬ÎÒÃÇ¿ÉÒÔʹÓÃÑ­»·½á¹¹½øÐÐÓÐÏÞ´ÎÊýµÄÖØÊÔ£¬±ÜÃâʹÓà GOTO ÃüÁî¿ÉÄܵ¼ÖµÄÎÞÏÞÖØÊÔ¡£
```plaintext
# ³õʼ»¯±äÁ¿
TRY_COUNT = 0
MAX_TRY = 3
RESULT = 0

# WHILE Ñ­»·½øÐÐÖØÊÔ
WHILE TRY_COUNT < MAX_TRY AND RESULT == 0
RESULT = UseSkill ¼¼ÄÜÃû
IF RESULT == 0
TRY_COUNT = TRY_COUNT + 1
Delay 1000 # ÑÓ³Ù 1 ÃëºóÖØÊÔ
ENDIF
ENDWHILE

IF RESULT == 0
Message "¼¼ÄÜʹÓÃʧ°Ü£¬ÒÑ´ïµ½×î´óÖØÊÔ´ÎÊý"
ENDIF
```
ÔÚÕâ¸ö½Å±¾ÖУ¬Ê¹Óà WHILE Ñ­»·½øÐм¼ÄÜʹÓõÄÖØÊÔ£¬×î¶àÖØÊÔ 3 ´Î¡£Èç¹û 3 ´Î¶¼Ê§°Ü£¬ÔòÊä³öÌáʾÐÅÏ¢£¬±ÜÃâÁËÒòʹÓà GOTO ÃüÁî¿ÉÄܵ¼ÖµÄÎÞÏÞÖØÊÔËÀÑ­»·¡£

## ×ܽá
ÔÚ¼ÜÉè´«ÆæµÄ½Å±¾±à³ÌÖУ¬Ñ­»·½á¹¹ÊDZÜÃâ GOTO ÃüÁîÔì³ÉËÀÑ­»·µÄÓÐЧÊֶΡ£Í¨¹ýºÏÀíÔËÓÃÌõ¼þÑ­»·£¨WHILE Ñ­»·£©ºÍ¼ÆÊýÑ­»·£¨FOR Ñ­»·£©£¬ÎÒÃÇ¿ÉÒÔΪ½Å±¾µÄÖ´ÐÐÉèÖÃÃ÷È·µÄÖÕÖ¹Ìõ¼þ£¬Ê¹´úÂëÂß¼­¸ü¼ÓÇåÎú¡¢Ò×ÓÚά»¤¡£Í¬Ê±£¬ÔÚ´¦Àí¸´ÔÓÂß¼­ºÍ´íÎóÒì³£Çé¿öʱ£¬Ñ­»·½á¹¹Ò²ÄÜÕ¹ÏÖ³ö±È GOTO ÃüÁî¸ü´óµÄÓÅÊÆ¡£Ï£Íû¹ã´ó´«Ææ¼ÜÉèÕßÄܹ»ÊìÁ·ÕÆÎÕÑ­»·½á¹¹µÄʹÓ㬱àд³ö¸ßЧ¡¢Îȶ¨µÄ´«Ææ½Å±¾£¬ÎªÍæ¼Ò´øÀ´¸üºÃµÄÓÎÏ·ÌåÑé