¡¡¡¡Ñ»·¿ØÖÆ
¡¡¡¡Ñ»·¿ØÖƵĻù±¾ÐÎʽÊÇLOOPÓï¾ä£¬LOOPºÍEND LOOPÖ®¼äµÄÓï¾ä½«ÎÞÏ޴εÄÖ´ÐС£LOOPÓï¾äµÄÓï·¨ÈçÏ£º
¡¡¡¡LOOP
¡¡¡¡¡¡statements;
¡¡¡¡END LOOP
¡¡¡¡LOOPºÍEND LOOPÖ®¼äµÄÓï¾äÎÞÏ޴εÄÖ´ÐÐÏÔÈ»ÊDz»Ðеģ¬ÄÇôÔÚʹÓÃLOOPÓï¾äʱ±ØÐëʹÓÃEXITÓï¾ä£¬Ç¿ÖÆÑ»·½áÊø£¬ÀýÈ磺
X:=100; LOOP ¡¡X:=X+10; ¡¡IF X>1000 THEN ¡¡¡¡EXIT; ¡¡END IF END LOOP; Y:=X; |
¡¡¡¡´ËʱYµÄÖµÊÇ1010.
¡¡¡¡EXIT WHENÓï¾ä½«½áÊøÑ»·£¬Èç¹ûÌõ¼þΪTRUE£¬Ôò½áÊøÑ»·¡£
X:=100; LOOP X:=X+10; EXIT WHEN X>1000; X:=X+10; END LOOP; Y:=X; |
¡¡¡¡WHILE..LOOP
¡¡¡¡WHILE..LOOPÓÐÒ»¸öÌõ¼þÓëÑ»·ÏàÁªÏµ£¬Èç¹ûÌõ¼þΪTRUE,ÔòÖ´ÐÐÑ»·ÌåÄÚµÄÓï¾ä£¬Èç¹û½á¹ûΪFALSE,Ôò½áÊøÑ»·¡£
X:=100; WHILE X<=1000 LOOP ¡¡X:=X+10; END LOOP; Y=X; |
¡¡¡¡FOR...LOOP
¡¡¡¡Óï·¨£º
FOR counter IN [REVERSE] start_range....end_range LOOP statements; END LOOP; |
¡¡ ¡¡LOOPºÍWHILEÑ»·µÄÑ»·´ÎÊý¶¼ÊDz»È·¶¨µÄ£¬FORÑ»·µÄÑ»·´ÎÊýÊǹ̶¨µÄ£¬counterÊÇÒ»¸öÒþʽÉùÃ÷µÄ±äÁ¿£¬ËûµÄ³õʼֵÊÇ start_range,µÚ¶þ¸öÖµÊÇstart_range+1,Ö±µ½end_range,Èç¹ûstart_rangeµÈÓÚend _range,ÄÇôѻ·½«Ö´ÐÐÒ»´Î¡£Èç¹ûʹÓÃÁËREVERSE¹Ø¼ü×Ö£¬ÄÇô·¶Î§½«ÊÇÒ»¸ö½µÐò¡£
X:=100; FOR v_counter in 1..10 loop x:=x+10; end loop y:=x; |
¡¡¡¡Èç¹ûÒªÍ˳öforÑ»·¿ÉÒÔʹÓÃEXITÓï¾ä¡£
¡¡¡¡±êÇ©
¡¡¡¡Óû§¿ÉÒÔʹÓñêǩʹ³ÌÐò»ñµÃ¸üºÃµÄ¿É¶ÁÐÔ¡£³ÌÐò¿é»òÑ»·¶¼¿ÉÒÔ±»±ê¼Ç¡£±êÇ©µÄÐÎʽÊÇ<>¡£
¡¡¡¡±ê¼Ç³ÌÐò¿é
<> [DECLARE] ... ... ... BEGIN ........ [EXCEPTION] ....... END label_name |
¡¡¡¡±ê¼ÇÑ»·
<> LOOP ......... <> loop .......... <> loop .... EXIT outer_loop WHEN v_condition=0; end loop innermost_loop; .......... END LOOP inner_loop; END LOOP outer_loop; |