zoukankan      html  css  js  c++  java
  • 流程控制 while和for循环

    流程控制

    1.宏观一定是自上而下(逻辑上方代码一定比逻辑下方代码先执行):顺序结构
    2.遇到需要条件判断选择不同执行路线的执行方式:分支结构
    3.有些事情需要重复不断的去执行(当满足某种条件或不满足某种条件结束重复动作):循环结构

    一.if分支结构

    1.if:

    if 条件:
        代码1
        代码2
        代码3
        ...
    # 条件成立时执行代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)

    2.if ... else ...:

    if 条件:
        代码1
        代码2
        代码3
        ...
    else:
        代码1
        代码2
        代码3
    ### if条件成立时执行代if的码块,否则执行else的代码块
    
    

    3.if…elif…else

    if 条件1:
        代码1
        代码2
        代码3
        ...
    elif 条件2:
        代码1
        代码2
        代码3
        ...
    elif 条件3:
        代码1
        代码2
        代码3
        ...
    ...
    else:
        代码1
        代码2
        代码3
    #哪一个条件成立就执行那个代码块,只会执行一个分支的代码块

    while循环

    一.基本语法和工作原理

    1.语法:
     while 条件:
    
          循环体代码
    
    2.工作步骤:
    
    #1.当条件满足时,会执行循环体,然后再去判断条件成功与否
    
    #2.如果还满足,重复1,2的过程,不满足结束循环

    二.while+break

    break的意思是终止当层的循环,执行其他代码。

    # break语法演示
    示例1:
    while True:
        print('1')
        print('2')
        break
        print('3')
    # 上面仅仅是演示break用法,实际不可能像我们这样去写,循环结束应该取决于条件
    
    示例2:
    user_db = 'jason'
    pwd_db = '123'
    while True:
        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循环')

    三.while+continue

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

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

    四.循环嵌套

    #1. 退出双层循环的while循环嵌套
    user_db = 'jason'
    pwd_db = '123'
    while True:
        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('%s功能执行'%cmd)
            break
        else:
            print('username or password error')
    print('退出了while循环')
    
    
    上述方法有点low,有多个while循环就要写多个break,有没有一种方法能够帮我解决,只要我退出一层循环其余的各层全都跟着结束>>>:定义标志位
    # 退出双层循环的while循环嵌套
    user_db = 'jason'
    pwd_db = '123'
    flag = True
    while flag:
        inp_user = input('username: ')
        inp_pwd = input('password: ')
        if inp_user == user_db and pwd_db == inp_pwd:
            print('login successful')
            while flag:
                cmd = input('请输入你需要的命令:')
                if cmd == 'q':
                    flag = False
                    break
                print('%s功能执行'%cmd)
        else:
            print('username or password error')
    print('退出了while循环')

    五.while+else(了解)

    while+else:else会在while没有被break时才会执行else中的代码。

    # while+else
    n = 1
    while n < 3:
          if n == 2:break  # 不会走else
        print(n)
        n += 1
    else:
        print('else会在while没有被break时才会执行else中的代码')

    for循环

    一.语法和原理介绍

    for用来完成特定的循环需求
    
    语法:
    for 循环得到的结果 in 被循环的容器:
        循环体
    
    # 1.第一次循环,循环得到的结果 就是 被循环的容器 中第一个值
    # 2.再次循环,循环得到的结果 会被重新赋值为 被循环的容器 中第二个值,以此类推
    # 注:每一次循环 循环得到的结果 不使用,下一次循环就会被覆盖,无法找回
    # 3.当 被循环的容器 中的值被 循环得到的结果 全部赋值一遍后,循环自动结束
    '''
    
    # range()
    # 1. range(结束不被包含)
    # 2. range(开始被包含, 结束不被包含)
    # 3. range(开始被包含, 结束不被包含, 步长)
    # 4. range(10, 5, -1)  # [10, 9, 8, 7, 6]

    二.示例:

    #1.列表循环
    name_list = ['jason', 'nick', 'tank', 'sean']
    for name in name_list:
      print(name)  # 对比与while更加简便
    
    #2. 再来看for循环字典会得到什么
    info = {'name': 'jason', 'age': 19}
    for item in info:
        print(item)  # 拿到字典所有的key
        print(info[item])
        
    # for可以不依赖于索引取指,是一种通用的循环取指方式
    # for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定的

    三.for+break

    break的意思是终止当层的循环,执行其他代码。

    # for+break
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            break
        print(name) # nick

    四.for+continue

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

    # for+continue
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            continue
        print(name) 
    结果:

      nick
      tank
      sean

     

         

  • 相关阅读:
    c++ string::size详解
    fatal error LNK1120: 1 个无法解析的外部命令
    c多个空格转成一个空格
    算法导论之三:快速排序
    转:C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
    vc6.0怎么调整工作空间到左边??
    2008生产实习 C++ 实习计划
    WCF是什么
    收藏:Silverlight 2.0 Beta Control Hierarchy (Silverlight 2.0控件层次结构图)
    A potentially dangerous Request.Form value was detected from the client 的解决方法
  • 原文地址:https://www.cnblogs.com/tfzz/p/10719950.html
Copyright © 2011-2022 走看看