# GESP等级：一级 | GESP Python 二级考点
# ============================================
# 第4节：continue —— 跳过本次，继续下次
# for 循环 + continue 画虚线
#
# 记忆钩子：
#   break    = 下课铃→立刻冲出教室（整个循环结束）
#   continue = 值日轮到你了→发烧请假（跳过这一次，下一个继续）
# ============================================
import turtle

t = turtle.Turtle()
t.shape("turtle")
t.speed(3)
t.pensize(3)

# ========== 1. for 循环画虚线 ==========
# 每第 3 笔抬笔空走——continue 跳过正常画线
t.penup()
t.goto(-300, 50)
t.pendown()

for i in range(1, 21):          # 画 20 笔
    if i % 3 == 0:              # 第 3、6、9、12...笔
        t.penup()               # 抬笔（不画线）
        t.forward(15)           # 空走过去
        t.pendown()             # 落笔
        continue                # ← continue！跳过下面的 forward 和 right
    t.forward(15)               # 正常画线（第1、2、4、5...笔）
    t.right(15)                 # 转 15 度

# ========== 动手试试 ==========
# TODO ①：把条件改成 i % 4 == 0，观察虚线变成什么规律？
#        答：________________________________
#
# TODO ②：把 continue 改成 break，虚线变成什么样？为什么？
#        答：________________________________
#
# TODO ③：把 continue 那行代码移到 penup() 上面，运行看看出什么问题？
#        答：________________________________
#

t.penup()
t.goto(-300, -50)
t.pendown()

# ========== 2. break vs continue 对比演示 ==========
# 红色 = break 版本（到第3笔就全部结束）
t.color("red")
t.penup(); t.goto(-300, -50); t.pendown()

for i in range(1, 21):
    if i % 3 == 0:
        t.penup()
        t.forward(15)
        t.pendown()
        break                   # ← break！整个循环结束！
    t.forward(15)
    t.right(15)

# 写上标注
t.penup()
t.goto(0, -80)
t.color("black")
t.write("红色=break（第3笔就停了）", font=("Arial", 14, "normal"))
t.goto(0, 80)
t.color("blue")
t.write("蓝色=continue（虚线规律跳过）", font=("Arial", 14, "normal"))

t.hideturtle()
turtle.done()
