flag跳出多層迴圈

2022-08-09 10:21:13 字數 2327 閱讀 1449

#

有時候我們需要從第三層的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('_'

)

print

(a, b)

#開啟檔案進行驗證

with open(r'

d:\pythonproject\day28\02上次作業\2.使用者登入作業\user_info

', 'r'

) as f:

for line in

f: c, d = line.strip().split("_"

)

print

(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:

print

(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...