# How to format for loop

I want to write a 'for' statement, but unsure how to do this with LaTeX. What I am trying to do is:

for k = 1, k++, while k < i

What is the proper (or at least a decent way) to write this in LaTeX?

Let me re-phrase:

I do not want to actually create a loop, I just want to print a line that will be the text of the beginning of a for-loop. I'm unsure how to do this.

• We want to help you, but unsure how to help you as your statement is difficult to be parsed. Please provide a more detailed illustration. – kiss my armpit May 22 '12 at 5:34

If you just want to print the statement, then something like

$\text{for k = 1, k{+}{+}, while k < i}$


will set it in a displayed format (remember to call \usepackage{amsmath} in the preamble). If it's as an item in an enumerate, then

\item for $k = 1$, $k{+}{+}$, while $k < i$


is sufficient.

The only subtle point is to enclose the + symbols between braces, in order to avoid undesired spacings.

If you're interested in typesetting algorithmic code, there are a number of choices. You can use a pseudocode environment algpseudocode offered by algorithmicx. Here's a short example from the algorithmicx documentation (with a pseudocode for loop added):

\documentclass{article}
\usepackage{algorithm}% http://ctan.org/pkg/algorithm
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\begin{document}
\begin{algorithm}
\caption{Euclid’s algorithm}\label{euclid}
\begin{algorithmic}[1]
\Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
\State $r\gets a\bmod b$
\While{$r\not=0$}\Comment{We have the answer if r is 0}
\State $a\gets b$
\State $b\gets r$
\State $r\gets a\bmod b$
\EndWhile\label{euclidendwhile}
\For{\texttt{<some condition>}}
\State \texttt{<do stuff>}
\EndFor
\State \textbf{return} $b$\Comment{The gcd is b}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}


The algorithms bundle supplied the algorithm floating environment.

Alternatively, the de-facto program typesetting package is listings. The examples, usage and language support is vast. An abundance of examples is contained within the listings documentation.

• For line \State \textbf{return} $b$\Comment{The gcd is b}, is there a reason you did not use the \Return keyword? – ZaydH May 3 '19 at 4:26
• @ZaydH: There is no \Return defined by default. – Werner May 3 '19 at 4:58
• maybe a dumb question -- but could you please explain more? When I take the code you provided and change \textbf{return} to \Return, it compiles for me. Is this going to be system specific? (I am running a very recent version of MacTex) I am sure there is something I am missing and would like to understand more. – ZaydH May 3 '19 at 5:08
• @ZaydH: If you look at the algorithmicx documentation you'll see that I just copied the code from the first example listed. I briefly looked at the code of algpseudocode.sty and could see a \Result; I may have missed it. If it works now, that's fine. – Werner May 3 '19 at 5:13
• @ZaydH: Just saw that \Return is defined within algpseudocode.sty. – Werner May 3 '19 at 15:41
\documentclass{article}
\usepackage{algorithm,algpseudocode}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

\begin{document}

\begin{algorithm}[H]
\caption{Sum of Array Elements}
\label{alg:loop}
\begin{algorithmic}[1]
\Require{$A_{1} \dots A_{N}$}
\Ensure{$Sum$ (sum of values in the array)}
\Statex
\Function{Loop}{$A[\;]$}
\State {$Sum$ $\gets$ {$0$}}
\State {$N$ $\gets$ {$length(A)$}}
\For{$k \gets 1$ to $N$}
\State {$Sum$ $\gets$ {$Sum + A_{k}$}}
\EndFor
\State \Return {$Sum$}
\EndFunction
\end{algorithmic}
\end{algorithm}

\end{document}


To the example given by Werner above. It did not work for me until I included braces as if I'm coding. Like this:

\For{\texttt{<some condition>}} {
\State \texttt{<do stuff>}
\EndFor
}

• The syntax of algorithmicx doesn't provide a second argument for \For. It only takes one argument. If you're using it this way, you're probably mixing algorithm2e's syntax with algorithmicx's constructions. Don't mix them - use one or the other. – Werner Mar 27 '18 at 22:29

Possibly you are looking for this:

https://riptutorial.com/latex/example/28657/loops---repeating-things