if循环中的输出和break的关系

IP 地址是由 4 个 0-255 之间的整数构成的序列,中间使用英文的句号(.)分割,形如 192.168.1.1 ,请编写程序对输入的 IP 地址进行判断是否合法,如果合法请输出 合法 否则输出 不合法

为什么它输出的不是4个合法或不合法

ip=list(map(int,input().split(".")))
for i in ip:
    if 0<=i<=255:
        print("合法")
    else:
        print("不合法")
    break

break 没有放对位置,这个位置走一遍就结束了


ip=list(map(int,input().split(".")))
count=0
for i in ip:
    if 0<=i<=255:
        count+=1
    else:
        break
if(count==4): # 4段地址都ok
    print("合法")
else:
    print("不合法");