Next: , Previous: Combining Conditions, Up: Control Structures   [Contents][Index]


9.4 ·«¤êÊÖ¤·

·«¤êÊÖ¤·¤È¤Ï¡¢¥×¥í¥°¥é¥à¤Î¤¢¤ëÉôʬ¤ò²¿ÅÙ¤â¼Â¹Ô¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¥ê¥¹¥È¤Î³ÆÍ×ÁǤä0¤«¤én¤Î³ÆÀ°¿ô¤Ë¤Ä¤¤¤Æ 1²ó¤º¤Ä¤¢¤ë·×»»¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ç¤¹¡£ Emacs Lisp¤Ç¤³¤ì¤ò¹Ô¤¦¤Ë¤Ï¡¢¥¹¥Ú¥·¥ã¥ë¥Õ¥©¡¼¥àwhile¤ò»È¤¤¤Þ¤¹¡£

Special Form: while condition forms…

while¤Ï¡¢¤Þ¤ºcondition¤òɾ²Á¤¹¤ë¡£ ·ë²Ì¤¬nil°Ê³°¤Ç¤¢¤ì¤Ð¡¢forms¤ò¥Æ¥­¥¹¥È¾å¤Î½ç¤Çɾ²Á¤¹¤ë¡£ ¤½¤·¤Æ¡¢condition¤òɾ²Á¤·Ä¾¤·¡¢¤½¤Î·ë²Ì¤¬nil°Ê³°¤Ç¤¢¤ì¤Ð¡¢ ºÆÅÙforms¤òɾ²Á¤¹¤ë¡£ ¤³¤Î½èÍý¤òcondition¤¬nil¤Ëɾ²Á¤µ¤ì¤ë¤Þ¤Ç·«¤êÊÖ¤¹¡£

·«¤êÊÖ¤·²ó¿ô¤ËÀ©¸Â¤Ï¤Ê¤¤¡£ ¥ë¡¼¥×¤Ï¡¢condition¤¬nil¤Ëɾ²Á¤µ¤ì¤ë¡¢ ¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¡¢throw¤Ë¤è¤ê¥ë¡¼¥×¤«¤éÈ´¤±½Ð¤¹ ¡Êsee Nonlocal Exits¡Ë¤Î¤¤¤º¤ì¤«¤¬µ¯¤³¤ë¤Þ¤Ç·«¤êÊÖ¤µ¤ì¤ë¡£

¥Õ¥©¡¼¥àwhile¤ÎÃͤϤĤͤËnil¤Ç¤¢¤ë¡£

(setq num 0)
     ⇒ 0
(while (< num 4)
  (princ (format "Iteration %d." num))
  (setq num (1+ num)))
     -| Iteration 0.
     -| Iteration 1.
     -| Iteration 2.
     -| Iteration 3.
     ⇒ nil

½ªÎ»¸¡ºº¤Î¤Þ¤¨¤Ë³Æ·«¤êÊÖ¤·¤´¤È¤Ë¼Â¹Ô¤·¤¿¤¤¤³¤È¤¬¤¢¤ì¤Ð¡¢ °Ê²¼¤Î¤è¤¦¤Ë¡¢¤½¤ì¤é¤È½ªÎ»¸¡ºº¤òprogn¤Ç¤Þ¤È¤á¤¿¤â¤Î¤ò while¤ÎÂè1°ú¿ô¤Ë¤¹¤ë¡£

(while (progn
         (forward-line 1)
         (not (looking-at "^$"))))

¤³¤ì¤Ï¡¢1¹ÔÀè¤Ø°Üư¤·¡¢¶õ¹Ô¤Ë㤹¤ë¤Þ¤Ç¡¢°Üư¤ò·«¤êÊÖ¤¹¡£ ¤³¤Îwhile¤Ë¤ÏËÜÂΤ¬¤Ê¤¯¡¢ ½ªÎ»¸¡ºº¡Ê¤«¤Ä¥Ý¥¤¥ó¥È¤ò¼ÂºÝ¤Ëư¤«¤¹¡Ë¤À¤±¤Ç¤¢¤ë¤È¤¤¤¦ÅÀ¤Ç¡¢ É÷ÊѤï¤ê¤Ç¤¢¤ë¡£