可以用on background layer来避免第二个循环
\documentclass[border=6pt]{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{backgrounds}
\pgfmathsetseed{42}
\begin{document}
\begin{tikzpicture}
\tkzDefPoint(0,-.5){b0}\tkzDrawPoints[size=3pt](b0)
\foreach \x[remember=\x as \lastx (initially 0)] in {1,...,16}{
\begin{scope}[on background layer]
\pgfmathrandominteger{\yy}{-2}{2}
\tkzDefPoint(\x*0.5,\yy pt){b\x}
\tkzDrawSegments(b\lastx,b\x)
\end{scope}
\tkzDrawPoints[size=3pt](b\x)
}
\end{tikzpicture}
\end{document}上面的例子中的\pgfmathrandominteger是我刻意构造的,就是为了避免被「抖机灵」(是我的 恶意 ,我希望 直面 这种 17个点16根连线的 「循环」不方便的情况)

虽然点和线的绘制次序改变了,但「17个点16根连线」的问题还是会出现「冗余」的:
\tkzDefPoint(0,-.5){b0}\tkzDrawPoints[size=3pt](b0)我再蹲一蹲。
























问 「未完全解决」关于首尾不相连的foreach绘图的优化问题