This is not necessarily an answer but an attempt to steer the above discussion into a different direction. Flowchart type diagrams are abundant on this site. A nice example is given in this answer, a slight variation of which I add here. (Note that I am not a programmer, so it is quite possible that I use the wrong styles for the elements of that flow chart. This is an additional reason to make this a community wiki.)
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{positioning}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[node distance=1cm,font=\sffamily,
startstop/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30},
io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30},
arr/.style={very thick,-latex}
]
\node (int) [startstop] {\texttt{int c=0;}};
\node (while) [process,below=of int] {\texttt{while (c <= x)}};
\draw[arr] (int) -- (while);
\node (if) [decision,below=of while] {\texttt{if (c \% 2 == 0)}};
\draw[arr] (while) -- (if);
\node (write) [process,right=of if] {\texttt{Console.WriteLine(c);}};
\draw[arr] (if) -- (write) node[midway,above]{yes};
\node (pp) [process,below=of if] {\texttt{c++;}};
\draw[arr] (if) -- (pp) node[midway,left]{no};
\draw[arr] (write) |- (pp);
\draw[arr] (pp.west) -- ++ (-1,0) |- (while) node[pos=0.25,left]{$c\le x$};
\end{tikzpicture}
\end{document}

Here I also have "an alternative"... (... it seems that "alternative" means one copies from another post without mentioning it, keeps 90% and makes some small changes here and there. OK, this is an "alternative", then, ;-)
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{positioning,shapes.geometric}
\begin{document}
\begin{tikzpicture}[node distance = 9mm and 14mm,
nodes= {draw, minimum width=8em, minimum height=2em,
font=\ttfamily},
startstop/.style = {fill=red!30, rounded corners},
process/.style = {fill=orange!30},
io/.style = {fill=blue!30,
trapezium, trapezium stretches body,
trapezium left angle=70, trapezium right angle=110},
decision/.style = {fill=green!30, diamond, aspect=1.5},
exp/.style={draw=none,font=\sffamily,minimum width=1em},
arr/.style = {very thick,-latex}
]
\node (int) [io] {int c=0;};
\node (while) [process,below=of int] {while (c <= x)};
\draw[arr] (int) -- (while);
\node (if) [decision,below=of while] {if (c \% 2 == 0)};
\draw[arr] (while) -- node[exp,right] {$c\le x$} (if);
\node (write) [process,below=of if] {Console.WriteLine(c);};
\draw[arr] (if) -- (write) node[exp,pos=0.5,left] {yes};
\node (pp) [process,below=of write] {c++;};
\draw[arr] (write) -- (pp);
\draw[arr] (if.east) -- ++ (1,0) node[exp,pos=0.5,above] {no} |- (pp) ;
\node (done) [startstop,below right=of write] {Console.WriteLine("Done");};
\draw[arr] (while) -| (done) node[exp,pos=0.25,above] {$c> x$};
\draw[arr] (pp.west) -- ++ (-1,0) |- (while);
\end{tikzpicture}
\end{document}
