1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Octave: Looping Over Structure Elements</title>
<meta name="description" content="GNU Octave: Looping Over Structure Elements">
<meta name="keywords" content="GNU Octave: Looping Over Structure Elements">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="The-for-Statement.html#The-for-Statement" rel="up" title="The for Statement">
<link href="The-break-Statement.html#The-break-Statement" rel="next" title="The break Statement">
<link href="The-for-Statement.html#The-for-Statement" rel="prev" title="The for Statement">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Looping-Over-Structure-Elements"></a>
<div class="header">
<p>
Up: <a href="The-for-Statement.html#The-for-Statement" accesskey="u" rel="up">The for Statement</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Looping-Over-Structure-Elements-1"></a>
<h4 class="subsection">10.5.1 Looping Over Structure Elements</h4>
<a name="index-structure-elements_002c-looping-over"></a>
<a name="index-looping-over-structure-elements"></a>
<p>A special form of the <code>for</code> statement allows you to loop over all
the elements of a structure:
</p>
<div class="example">
<pre class="example">for [ <var>val</var>, <var>key</var> ] = <var>expression</var>
<var>body</var>
endfor
</pre></div>
<p>In this form of the <code>for</code> statement, the value of <var>expression</var>
must be a structure. If it is, <var>key</var> and <var>val</var> are set to the
name of the element and the corresponding value in turn, until there are
no more elements. For example:
</p>
<div class="example">
<pre class="example">x.a = 1
x.b = [1, 2; 3, 4]
x.c = "string"
for [val, key] = x
key
val
endfor
-| key = a
-| val = 1
-| key = b
-| val =
-|
-| 1 2
-| 3 4
-|
-| key = c
-| val = string
</pre></div>
<p>The elements are not accessed in any particular order. If you need to
cycle through the list in a particular way, you will have to use the
function <code>fieldnames</code> and sort the list yourself.
</p>
<p>The <var>key</var> variable may also be omitted. If it is, the brackets are
also optional. This is useful for cycling through the values of all the
structure elements when the names of the elements do not need to be
known.
</p>
</body>
</html>
|