流程控制之while循環

1、語法

循環就是一個重複的過程,咱們人須要重複幹一個活,那麼計算機也須要重複幹一個活。ATM驗證失敗,那麼計算機會讓咱們再一次輸入密碼。這個時候就得說出咱們的wile循環,while循環又稱爲條件循環。code

while 條件
    code 1
    code 2
    code 3
    ...

while True:
    print('*1'*100)
    print('*2'*100)
# 實現ATM的輸入密碼從新輸入的功能
while True:
    user_db = 'nick'
    pwd_db = '123'

    inp_user = input('username: ')
    inp_pwd = input('password: ')
    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')
    else:
        print('username or password error')

上述代碼雖然實現了功能,可是用戶密碼輸對了,他也會繼續輸入。input

2、while + break

break的意思是終止掉當前層的循環,執行其餘代碼。cmd

while True:
    print('1')
    print('2')
    break
    print('3')
1
2

上述代碼的break毫無心義,循環的目的是爲了讓計算機和人同樣工做,循環處理事情,而他直接打印1和2以後就退出循環了。而咱們展現下有意義的while+break代碼的組合。it

while True:
    user_db = 'nick'
    pwd_db = '123'

    inp_user = input('username: ')
    inp_pwd = input('password: ')
    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')
        break
    else:
        print('username or password error')

print('退出了while循環')
username: nick
password: 123
login successful
退出了while循環

3、while + continue

continue的意思是終止本次循環,直接進入下一次循環class

n = 1
while n < 4:
    print(n)
    n += 1
1
2
3
n = 1
while n < 10:
    if n == 8:
        # n += 1  # 若是註釋這一行,則會進入死循環
        continue
    print(n)
    n += 1

continue不能加在循環體的最後一步執行的代碼,由於代碼加上去毫無心義,以下所示的continue所在的位置就是毫無心義的。ps:注意是最後一步執行的代碼,而不是最後一行。循環

while True:
    if 條件1:
        code1
        code2
        code3
        ...
    else:
        code1
        code2
        code3
        ...

    continue

4、while循環的嵌套

ATM密碼輸入成功還須要進行一系列的命令操做,好比取款,好比轉帳。而且在執行功能結束後會退出命令操做的功能,即在功能出執行輸入q會退出輸出功能的while循環而且退出ATM程序。語法

# 退出內層循環的while循環嵌套
while True:
    user_db = 'nick'
    pwd_db = '123'

    inp_user = input('username: ')
    inp_pwd = input('password: ')

    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')

        while True:
            cmd = input('請輸入你須要的命令:')
            if cmd == 'q':
                break
            print(f'{cmd} 功能執行')
    else:
        print('username or password error')

print('退出了while循環')
# 退出雙層循環的while循環嵌套
while True:
    user_db = 'nick'
    pwd_db = '123'

    inp_user = input('username: ')
    inp_pwd = input('password: ')

    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')

        while True:
            cmd = input('請輸入你須要的命令:')
            if cmd == 'q':
                break
            print(f'{cmd} 功能執行')
        break
    else:
        print('username or password error')

print('退出了while循環')
username: nick
password: 123
login successful
請輸入你須要的命令:q
退出了while循環

5、tag控制循環退出

# tag控制循環退出
tag = True
while tag:
    user_db = 'nick'
    pwd_db = '123'

    inp_user = input('username: ')
    inp_pwd = input('password: ')

    if inp_user == user_db and pwd_db == inp_pwd:
        print('login successful')

        while tag:
            cmd = input('請輸入你須要的命令:')
            if cmd == 'q':
                tag = False
            print(f'{cmd} 功能執行')
    else:
        print('username or password error')

print('退出了while循環')
username: nick
password: 123
login successful
請輸入你須要的命令:q
q 功能執行
退出了while循環

6、while + else

while+else:else會在while沒有被break時纔會執行else中的代碼。程序

# while+else
n = 1
while n < 3:
    print(n)
    n += 1
else:
    print('else會在while沒有被break時纔會執行else中的代碼')
1
2
else會在while沒有被break時纔會執行else中的代碼
相關文章
相關標籤/搜索