#有時候我們需要從第三層的for迴圈直接跳出第二層的while迴圈,進入第一層迴圈,只用break就做不到了,這時候我們可以用flag.
#(1)用法1: 定義標識為ture,然後while flag,比如驗證登入資訊,驗證成功直接改變標識狀態為false,直接跳到第一層while迴圈(不執行else裡的**)/如果驗證完都沒成功,那麼久執行else裡面的**
n = 1
while 1:
#阻塞等待客戶端連線
conn, addr =server.accept()
print('
第%d個客戶端連線成功
' %n)
flag =true
count = 1
while
flag:
try:
#阻塞,等待接收
data = conn.recv(1024)
data = data.decode('
utf-8')
a, b = data.split('_'
)
(a, b)
#開啟檔案進行驗證
with open(r'
d:\pythonproject\day28\02上次作業\2.使用者登入作業\user_info
', 'r'
) as f:
for line in
f: c, d = line.strip().split("_"
)
(c, d)
if a == c and b ==d:
conn.send(
'success
'.encode('
utf-8'))
flag =false
break
else
:
if count < 3:
conn.send(
'fail
'.encode('
utf-8'))
elif count == 3:
conn.send(
'fail
'.encode('
utf-8'))
break
count += 1
except
connectionreseterror:
break
#(2)用法2: 在第二層while迴圈中,在執行某個操作之前定義標識(flag)狀態,比如驗證成功,就改變標識狀態為ture/驗證完都不成過程,那麼標識狀態不變,之後根據標識狀態再做操作.
while 1:
conn,addr=sock.accept()
while 1:
try:
data=conn.recv(1024).decode("
utf8")
print("
接收資訊:
",data)
print("
接收資訊:
",type(data))
print("
-----
",data.split("|"
)) user,pwd=data.strip().split("|"
)
#檔案操作
flag=false
with open(
"account
","r
") as f:
for line in
f:
print("
===",line.strip().split(":"
)) username,password=line.strip().split(":"
)
if username==user and password==pwd:
flag=true
break
ifflag:
conn.send(b
"success")
break
else
: conn.send(b
"fail")
except
exception as e:
(e)
break
跳出多層迴圈for while
break flag false for i in range 10 print 爺爺層 i for j in range 10 print 爸爸層 j if j 3 break flag true break for k in range 10 print 孫子層 k if k 2 break f...
如何指定跳出多層迴圈
public class outloopwithlabel 方法二 boolean,break組合 通過boolean型條件變數和break的組合,由內層迴圈在跳出 break 前改變條件變數,外層迴圈檢測條件變數改變時終止外層迴圈。public class outloopwithbooleanbr...
label應用 跳出多層迴圈
一 label switch,while,for和do語句允許有乙個可選的前置標籤 label 配合break語句使用。二 應用 1.使用label跳出雙迴圈 var num 0 outpoint 這裡為label,標籤名為outpoint for var i 0 i 10 i num consol...