zoukankan      html  css  js  c++  java
  • 流程控制之while循坏

    流程控制之while循坏

    一、语法

    循环就是一个重复的过程,我们人需要重复干一个活,人岂不是要累死啊,而且还是那么…..的枯燥乏味,向我这样要的小年轻,不骚里骚气的行吗?那岂不是白白流浪了这么多年头,所以说呢要合理利用工具和资源,那么就不得不提及这个人笨重的大家伙,那就是传说中的神奇——计算机,利用这个大小子干些重复的活岂不是美滋滋。A例如:取钱,一大堆打款取,那岂不是能堵死,所以说人名早就了传说的TM机。例如TM验证失败,那么计算机会让我们再一次输入密码。这个时候就得说出我们的while循环,while循环又称为条件循环。

    # 基本格式
    while 条件
        code 1
        code 2
        code 3
        ...
    eg(死循环):
    while True:
        print('*1'*100)
        print('*2'*100)
    

    eg:

    # 实现ATM的输入密码重新输入的功能
    while True:
        user_db = 'randy'
        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')
    

    结果:

    username: randy
    password: 123
    login successful

    上述代码虽然实现了功能,但是用户密码输对了,他也会继续输入。

    二、while +break

    break的意思是终止掉当前层的while循环,后面的代码不会再执行,执行循环外面的其他代码。

    eg:

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

    结果:

    1
    2

    上述代码的break毫无意义,循环的目的是为了让计算机和人一样工作,循环处理事情,而他直接打印1和2之后就退出循环了。而我们展示下有意义的while+break代码的组合。

    while True:
        user_db = 'randy'
        pwd_db = '123456'
    
        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: randy
    password: 123456
    login successful
    登陆成功会退出循环

    三、while+continue

    continue的意思是终止本次循环,直接进入下一次循环

    n = 1
    while n < 10:
        if n == 8:
            # n += 1  # 如果注释这一行,则会进入死循环
            continue
        print(n)
        n += 1
    

    continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。注意是最后一步执行的代码,而不是最后一行。

    while True:
        if 条件1:
            code1
            code2
            code3
            ...
        else:
            code1
            code2
            code3
            ...
    
        continue
    

    四、循环的嵌套

    ATM密码输入成功还需要进行一系列的命令操作,比如取款,比如转账。并且在执行功能结束后会退出命令操作的功能,即在功能出执行输入q会退出输出功能的while循环并且退出ATM程序。

    # 退出双层循环的while循环嵌套
    while True:
        user_db = 'randy'
        pwd_db = '123456'
    
        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: randy
    password: 123456
    login successful
    请输入你需要的命令:q
    退出了while循环

    六、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中的代码

    七、总结

    1. while: 实现重复的做一件事情,只有条件成立才会进入while循环体中,如果条件始终成立,则会出现死循环;

    2. while...break: 多用户满足某一特定的条件执行break,一般都是与if语句连用,跳出当前while循环体 ;

    3. while...continue: 多用户满足某一特定的条件执行continue语句,一般都是与if语句连用,终止当前本次循环,进入下一次循环体;

    4. while...else: else代码块会在while中没有被break终止循环都会执行else代码块;

    5. while循环嵌套: 当有一件重复要做的事情,里面还有重复的事情要做,则需要使用循环嵌套,解决需求;

    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    聊聊oracle rowid与索引结构
    去除文本中的空行
    表与表空间
    文件导入到数据库——复杂版
    文件导入到数据库
    vmware workstation 12+oracle linux 5.10+oracle 11g 搭建rac
    oracle判断是否实施了rac
    面向对象-小练习
    面向对象-面向对象的可拓展性
    面向对象-一切皆对象
  • 原文地址:https://www.cnblogs.com/randysun/p/12217040.html
Copyright © 2011-2022 走看看