Re: Cicli annidati

#35412
Up
0
Down
::

È possibile annidare i cicli ottenuti con \loop\repeat?
Ho il seguente codice:
`\documentclass{minimal}

\newcounter{tempa}
\newcounter{tempb}
\setcounter{tempa}{0}
\setcounter{tempb}{0}

\begin{document}

\loop\ifnum\value{tempa}<7\relax
\thetempa
\loop\ifnum\value{tempb}<4\relax
\thetempb\par
\stepcounter{tempb}
\repeat
\stepcounter{tempa}
\repeat

\end{document}`
Mi aspetterei di ottenere il seguente elenco:
`
00
01
02
03
10
11
12

62
63`
Sinceramente non capisco… 😥

Eppure dovresti: la macro \loop è delimitata da \repeat, quindi TeX vede qualcosa che non intendi. La soluzione è di mettere il loop interno tra graffe.

C’è un altro errore nel tuo loop: il valore di tempb non viene riportato a zero quando scatta tempa.
`\documentclass{minimal}

\newcounter{tempa}
\newcounter{tempb}[tempa]

\begin{document}

\loop\ifnum\value{tempa}<7
{\loop\ifnum\value{tempb}<4
\thetempa\thetempb\par
\stepcounter{tempb}
\repeat}
\stepcounter{tempa}
\repeat

\end{document}`
Ciao
Enrico

Go to top