Files
krkr2doc/docs/tjs2doc/contents/while.html
2016-09-08 17:50:19 +09:00

109 lines
6.1 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<!-- generated by to_html.pl from while.xml -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>while ステートメント</title>
<meta name="author" content="W.Dee" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link href="browser.css" type="text/css" rel="stylesheet" title="吉里吉里関連リファレンス用標準スタイル" />
<link href="mailto:[email protected]" rev="Made" />
<link href="index.html" target="_top" rel="Start" title="トップページ" />
</head>
<body>
<h1><a id="id596" name="id596">while ステートメント</a>
</h1><div class="para"><div>
 <a id="id597" name="id597" class="targanchor"><dfn>while</dfn></a> ステートメントは、指定された条件が真である間、ステートメントまたはブロックを繰り返し実行するものです。ループを作成することができます。<br />
 構文は以下の通りです。<br />
<br />
<code class="bq">while(expression)<br />
&nbsp;&nbsp;&nbsp;&nbsp;ステートメントまたはブロック<br />
</code>
<br />
<br />
 「ステートメントまたはブロック」は、条件式である expression が真である限り、繰り返し実行されます。<br />
<br />
 動作としては、<br />
(1) まず、expression を評価し、偽であれば、ステートメントまたはブロックは実行されない<br />
(2) ステートメントまたはブロックを実行する<br />
(3) expression を評価し、その結果が真ならば (2) へ、そうでなければ while ステートメント終了<br />
<br />
 つまり、最初から expression が偽の場合はステートメントまたはブロックは実行されません。また、常に expression が評価されるわけではなく、ステートメントまたはブロックを一回実行するごとに expression の真偽がチェックされます。<br />
 また、(3) の時点で、ブロックの場合はいったんブロックから抜けます ( 変数などは消去されると言うこと )。<br />
<br />
<code class="bq"><span class="weak">例:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;while(func())&nbsp;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/*&nbsp;func()&nbsp;が真の間、何もしないで&nbsp;func()&nbsp;を評価し続ける&nbsp;*/</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;while(func())&nbsp;i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">/*&nbsp;func()&nbsp;が真の間、i++&nbsp;を実行し続ける&nbsp;*/</span><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;while(i&nbsp;&lt;&nbsp;5)&nbsp;<span class="comment">//&nbsp;i&nbsp;&nbsp;5&nbsp;より小さい間</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func(i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</code>
<br />
</div></div>
<h1><a id="id598" name="id598">break</a>
</h1><div class="para"><div>
 break ステートメントは、while を途中で終了させたい場合に記述します。<br />
<br />
<code class="bq"><span class="weak">例:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;while(true)&nbsp;<span class="comment">//&nbsp;break&nbsp;が実行されない限りは無限ループ</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(func())&nbsp;break;&nbsp;<span class="comment">//&nbsp;func()&nbsp;が真ならばwhile終了</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func2();&nbsp;<span class="comment">//&nbsp;↑で&nbsp;break&nbsp;が実行されなければここにくる</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;break&nbsp;が実行されると、ここにくる</span><br />
</code>
<br />
</div></div>
<h1><a id="id599" name="id599">continue</a>
</h1><div class="para"><div>
 continue ステートメントは、途中で、条件式の評価からやり直したいときに記述します。<br />
 continue が実行されると、(3) に実行が移ります。<br />
<br />
<code class="bq"><span class="weak">例:</span><br />&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i&nbsp;=&nbsp;0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;while(i&nbsp;&lt;&nbsp;5)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(func1())&nbsp;continue;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;func1()&nbsp;&nbsp;true&nbsp;ならば、i&nbsp;&lt;&nbsp;5&nbsp;の条件式チェックがされ、真ならば</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;またブロックの先頭から実行される</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func2();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</code>
<br />
</div></div>
<h1><a id="id600" name="id600">do~while</a>
</h1><div class="para"><div>
 do~while ステートメントは、while ステートメントと同じですが、最初に条件式のチェックを行いません。<br />
 構文は以下の通りです。<br />
<br />
<code class="bq">do<br />
&nbsp;&nbsp;&nbsp;&nbsp;ステートメントまたはブロック<br />
while(expression);<br />
</code>
<br />
<br />
 最初に条件式をチェックしないため、do の時点で条件式が偽でも「ステートメントまたはブロック」は実行されます。<br />
 いったん「ステートメントまたはブロック」が実行されれば条件式がチェックされ、偽ならばループを抜け、真ならば再びステートメントまたはブロックが実行され、これを繰り返します。<br />
</div></div>
<script type="text/javascript" charset="UTF-8" src="documentid.js" ></script>
<script type="text/javascript" charset="UTF-8" src="postcontent.js" ></script>
</body>
</html>