Files
hustoj/web/cppreference-zh/chmhelp/c-language-while.html
2025-08-01 12:57:54 +08:00

159 lines
12 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>while &#24490;&#29615;</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-c_language_while skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">while &#24490;&#29615;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="c.html">c</a>&lrm; | <a href="c-language.html">language</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#37325;&#22797;&#25191;&#34892; <span class="t-spar">&#35821;&#21477;</span> &#65292;&#30452;&#21040; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#30340;&#20540;&#21464;&#24471;&#27604;&#36739;&#31561;&#20110;&#38646;&#12290;&#27492;&#27979;&#35797;&#22312;&#27599;&#27425;&#36845;&#20195;&#21069;&#21457;&#29983;&#12290;</p>
<h3><span class="mw-headline" id=".E8.AF.AD.E6.B3.95">&#35821;&#27861;</span></h3>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td class="t-sdsc-nopad"><span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>while (</b></code> <span class="t-spar">&#34920;&#36798;&#24335;</span> <code><b>)</b></code> <span class="t-spar">&#35821;&#21477;</span></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">&#34920;&#36798;&#24335;</span></td>
<td>-</td>
<td>&#20219;&#20309;<a href="c-language-types.html#.E7.B1.BB.E5.9E.8B.E7.BB.84.E5.88.AB">&#26631;&#37327;&#31867;&#22411;</a><a href="c-language-expressions.html">&#34920;&#36798;&#24335;</a>&#12290;&#22312;&#27599;&#27425;&#36845;&#20195;&#21069;&#27714;&#20540;&#27492;&#34920;&#36798;&#24335;&#65292;&#32780;&#19988;&#33509;&#23427;&#19982;&#38646;&#27604;&#36739;&#30456;&#31561;&#65292;&#21017;&#36864;&#20986;&#24490;&#29615;&#12290;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#35821;&#21477;</span></td>
<td>-</td>
<td>&#20219;&#20309;<a href="c-language-statements.html">&#35821;&#21477;</a>&#65292;&#24120;&#20026;&#19968;&#26465;&#22797;&#21512;&#35821;&#21477;&#65292;&#23427;&#34987;&#29992;&#20316;&#24490;&#29615;&#20307;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-c23">(C23)</span>&#21487;&#36873;&#30340;<a href="c-language-attributes.html">&#23646;&#24615;</a>&#21015;&#34920;&#65292;&#24212;&#29992;&#21040;&#24490;&#29615;&#35821;&#21477;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p><code>while</code> &#23548;&#33268;&#37325;&#22797;&#25191;&#34892; <span class="t-spar">&#35821;&#21477;</span> &#65288;&#20134;&#31216;&#20026;<i>&#24490;&#29615;&#20307;</i>&#65289;&#65292;&#30452;&#33267; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#65288;&#20134;&#31216;&#20026;<i>&#25511;&#21046;&#34920;&#36798;&#24335;</i>&#65289;&#19982;&#38646;&#27604;&#36739;&#30456;&#31561;&#12290;&#19981;&#31649;&#26159;&#27491;&#24120;&#36827;&#20837;&#24490;&#29615;&#20307;&#36824;&#26159;&#20197; <a href="c-language-goto.html">goto</a> &#36827;&#20837; <span class="t-spar">&#35821;&#21477;</span> &#20869;&#37096;&#65292;&#37117;&#20250;&#21457;&#29983;&#37325;&#22797;&#12290;</p>
<p><span class="t-spar">&#34920;&#36798;&#24335;</span>&#30340;&#27714;&#20540;&#22312;&#27599;&#27425;&#25191;&#34892; <span class="t-spar">&#35821;&#21477;</span> &#21069;&#21457;&#29983;&#65288;&#38500;&#38750;&#29992; goto &#36827;&#20837;&#65289;&#12290;&#33509;&#38656;&#35201;&#22312;&#27599;&#27425;&#24490;&#29615;&#20307;&#21518;&#27714;&#20540;&#25511;&#21046;&#34920;&#36798;&#24335;&#65292;&#21487;&#20197;&#29992; <a href="c-language-do.html">do-while &#24490;&#29615;</a>&#12290;</p>
<p>&#33509;&#24490;&#29615;&#30340;&#25191;&#34892;&#38656;&#35201;&#22312;&#26576;&#20123;&#28857;&#32456;&#27490;&#65292;&#21017;&#33021;&#20197; <a href="c-language-break.html">break &#35821;&#21477;</a>&#20026;&#20316;&#32456;&#27490;&#35821;&#21477;&#12290;</p>
<p>&#33509;&#24490;&#29615;&#30340;&#25191;&#34892;&#38656;&#35201;&#20174;&#24490;&#29615;&#20307;&#30340;&#32467;&#23614;&#32487;&#32493;&#65292;&#21017;&#33021;&#20197; <a href="c-language-continue.html">continue &#35821;&#21477;</a>&#20026;&#24555;&#25463;&#26041;&#24335;&#12290;</p>
<p>&#33509;&#26080;&#38480;&#24490;&#29615;&#22312;&#20854; <span class="t-spar">&#35821;&#21477;</span> &#25110; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#30340;&#20219;&#20309;&#37096;&#20998;&#26080;&#21487;&#35266;&#27979;&#34892;&#20026;&#65288; I/O &#12289; volatile &#35775;&#38382;&#12289;&#21407;&#23376;&#25110;&#21516;&#27493;&#25805;&#20316;&#65289;&#65292;&#21017;&#25317;&#26377;&#36825;&#31181;&#24490;&#29615;&#30340;&#31243;&#24207;&#26377;&#26410;&#23450;&#20041;&#34892;&#20026;&#12290;&#36825;&#20801;&#35768;&#32534;&#35793;&#22120;&#20248;&#21270;&#25481;&#25972;&#20010;&#19981;&#21487;&#35266;&#27979;&#24490;&#29615;&#65292;&#32780;&#26080;&#38656;&#35777;&#26126;&#20182;&#20204;&#20250;&#32467;&#26463;&#12290;&#20165;&#26377;&#30340;&#20363;&#22806;&#26159; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#20026;&#24120;&#37327;&#34920;&#36798;&#24335;&#30340;&#24490;&#29615;&#65306; <code>while(true)</code> &#22987;&#32456;&#26159;&#26080;&#38480;&#24490;&#29615;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<p>&#21516;&#25152;&#26377;&#36873;&#25321;&#21644;&#36845;&#20195;&#35821;&#21477;&#65292; while &#35821;&#21477;&#24314;&#31435;<a href="c-language-scope.html">&#22359;&#20316;&#29992;&#22495;</a>&#65306;&#20219;&#20309;&#20110; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#20013;&#24341;&#20837;&#30340;&#26631;&#35782;&#31526;&#22312;&#35821;&#21477;&#21518;&#31163;&#24320;&#20316;&#29992;&#22495;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#24120;&#20197;&#24067;&#23572;&#21644;&#25351;&#38024;&#34920;&#36798;&#24335;&#20026;&#24490;&#29615;&#25511;&#21046;&#34920;&#36798;&#24335;&#12290;&#24067;&#23572;&#20540; <code>false</code> &#21644;&#20219;&#20309;&#25351;&#38024;&#31867;&#22411;&#30340;&#31354;&#25351;&#38024;&#20540;&#19982;&#38646;&#27604;&#36739;&#30456;&#31561;&#12290;</p>
<h3><span class="mw-headline" id=".E5.85.B3.E9.94.AE.E8.AF.8D">&#20851;&#38190;&#35789;</span></h3>
<p><a href="c-keyword-while.html"><tt>while</tt></a></p>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co2">#include &lt;stdio.h&gt;</span>
<span class="co2">#include &lt;stdlib.h&gt;</span>
<span class="co2">#include &lt;string.h&gt;</span>
<span class="kw2">enum</span> <span class="br0">{</span> SIZE <span class="sy1">=</span> <span class="nu0">8</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// &#24179;&#20961;&#31034;&#20363;</span>
<span class="kw4">int</span> array<span class="br0">[</span>SIZE<span class="br0">]</span>, n <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span>
<span class="kw1">while</span><span class="br0">(</span>n <span class="sy1">&lt;</span> SIZE<span class="br0">)</span> array<span class="br0">[</span>n<span class="sy2">++</span><span class="br0">]</span> <span class="sy1">=</span> <a href="c-numeric-random-rand.html"><span class="kw741">rand</span></a><span class="br0">(</span><span class="br0">)</span> <span class="sy2">%</span> <span class="nu0">2</span><span class="sy4">;</span>
<a href="c-io-puts.html"><span class="kw836">puts</span></a><span class="br0">(</span><span class="st0">&quot;Array filled!&quot;</span><span class="br0">)</span><span class="sy4">;</span>
n <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span>
<span class="kw1">while</span><span class="br0">(</span>n <span class="sy1">&lt;</span> SIZE<span class="br0">)</span> <a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;%d &quot;</span>, array<span class="br0">[</span>n<span class="sy2">++</span><span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;<span class="es1">\n</span>&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#32463;&#20856;&#30340; strcpy() &#23454;&#29616;</span>
<span class="co1">// &#65288;&#20174; src &#22797;&#21046;&#31354;&#32456;&#27490;&#23383;&#31526;&#20018;&#21040; dst &#65289;</span>
<span class="kw4">char</span> src<span class="br0">[</span><span class="br0">]</span><span class="sy1">=</span><span class="st0">&quot;Hello, world&quot;</span>, dst<span class="br0">[</span><span class="kw4">sizeof</span> src<span class="br0">]</span>, <span class="sy2">*</span>p<span class="sy1">=</span>dst, <span class="sy2">*</span>q<span class="sy1">=</span>src<span class="sy4">;</span>
<span class="kw1">while</span><span class="br0">(</span><span class="sy2">*</span>p<span class="sy2">++</span> <span class="sy1">=</span> <span class="sy2">*</span>q<span class="sy2">++</span><span class="br0">)</span>
<span class="sy4">;</span> <span class="co1">// &#31354;&#35821;&#21477;</span>
<a href="c-io-puts.html"><span class="kw836">puts</span></a><span class="br0">(</span>dst<span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">Array filled!
1 0 1 1 1 1 0 0
Hello, world</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-17">
<ul>
<li>C17 &#26631;&#20934;&#65288;ISO/IEC 9899:2018&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.8.5.1 The while statement (p: 109)</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-11">
<ul>
<li>C11 &#26631;&#20934;&#65288;ISO/IEC 9899:2011&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.8.5.1 The while statement (p: 151)</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-c99">
<ul>
<li>C99 &#26631;&#20934;&#65288;ISO/IEC 9899:1999&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.8.5.1 The while statement (p: 136)</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-c89">
<ul>
<li>C89/C90 &#26631;&#20934;&#65288;ISO/IEC 9899:1990&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>3.6.5.1 The while statement</li>
</ul>
</dd>
</dl>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin"></table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>