zoukankan      html  css  js  c++  java
  • while循环

    while 循环

    while循环又叫条件循环

    # while循环语法结构
    
    while 条件:
        code1
        code2
        
        ……
        
        
    

    只有当条件判断为Ture时,才会执行code1,code2……代码块

    # 下面来写一个猜年龄小游戏
    
    age = 27
    
    while True:
        guess_age = input('>>>>请输入你猜的年龄:')
        guess_age = int(guess_age)
        if guess_age == age:
            print('猜对啦!')
        elif guess_age > age:
            print('猜大了')
        else:
            print('猜小了')
    
    >>>>请输入你猜的年龄:23
    猜小了
    >>>>请输入你猜的年龄:55
    猜大了
    >>>>请输入你猜的年龄:30
    猜大了
    >>>>请输入你猜的年龄:25
    猜小了
    

    以上就是一个很简单的while循环,但你是否看到,这个循环会一直循环下去而无法停止,那要怎样让它停止下来呢? 这就需要我们接下来讲到的while……break语句

    while……break语法

    break表示终止本层循环,其他层的循环不受干扰

    while 条件:
        code1
        code2
        
        break
        
        code3
        
        ...
        
    
    age = 27
    
    while True:
        guess_age = input('>>>>请输入你猜的年龄:')
        guess_age = int(guess_age)
        if guess_age == age:
            print('猜对啦!')
            break                # 这样猜对啦就会跳出循环,不在继续循环了
        elif guess_age > age:
            print('猜大了')
        else:
            print('猜小了')
    
    >>>>请输入你猜的年龄:55
    猜大了
    >>>>请输入你猜的年龄:27
    猜对啦!
    

    while循环嵌套

    顾名思义,while循环嵌套就是while循环里还有while循环

    上面的小游戏好不好玩,可以玩无数次,直至猜对为止,但这样没啥意义,玩游戏就要有刺激性、期待性,我们可以再增加条件

    1. 只有三次机会可以玩;
    2. 如果猜对了,就会有奖品,且猜的次数越少,奖品越多
    print('-------------猜年龄拿奖品啦!-------------')
    
    guess_age = 27
    life = 3
    count = 0
    award_dict = {0:'Book',1:'Fish',2:'Food',3:'Cup',4:'pencil'}
    
    while count < life:
        age = input('>>>>请输入你猜的年龄:')
        age = int(age)
        
        if age == guess_age:
            time = life - count
            print(f'恭喜你猜对啦!!!
    你可以从下面奖品中选择{time}个奖品
    {award_dict}')
            
            # 接下来进行奖品选择,又使用了一次while循环
    
            while time:
                num = input('>>>>请输入你想要的奖品编号(一次只能选择一个):')
                num = int(num)
                print(f'恭喜你获得了奖品【{award_dict[num]}】')
                time -= 1
            break     # 跳出本层循环
        
        elif age < guess_age:
            print('猜小了')
            
        else:
            print('猜大了')
        count += 1
    
    
    -------------猜年龄拿奖品啦!-------------
    >>>>请输入你猜的年龄:30
    猜大了
    >>>>请输入你猜的年龄:27
    恭喜你猜对啦!!!
    你可以从下面奖品中选择2个奖品
    {0: 'Book', 1: 'Fish', 2: 'Food', 3: 'Cup', 4: 'pencil'}
    >>>>请输入你想要的奖品编号(一次只能选择一个):2
    恭喜你获得了奖品【Food】
    >>>>请输入你想要的奖品编号(一次只能选择一个):3
    恭喜你获得了奖品【Cup】
    

    while+continue

    continue表示跳过本次循环,接下来继续执行本层循环

    下面我们写一个从0+1+2+3+……+100的计算公式

    count = 0
    count_sub = 0
    
    while count < 100:
        count += 1
        count_sub +=count
    
    print(count_sub)
    
    5050
    

    如果我们只要100以内偶数相加的值,需要怎么操作呢?

    count = 0
    count_sub = 0
    
    while count < 100:
        count += 1
        if (count % 2) != 0:
            continue             # 跳出本次循环,继续下一个循环
        count_sub +=count
    
    print(count_sub)
    
    2550
    

    while……else

    定义:如果while循环没有被break掉,则执行else内部代码

    num = 0
    while num < 8:
        print(num)
        num += 1
    else:
        print('else会在while没有被break时才会执行else中的代码')
    
    0
    1
    2
    3
    4
    5
    6
    7
    else会在while没有被break时才会执行else中的代码
    
    num = 0
    while num < 8:
        if num == 6:
            break
        print(num)
        num += 1
    else:
        print('else会在while没有被break时才会执行else中的代码')
    print('while循环在num = 6时break掉了,所以不会执行else语句')
    
    0
    1
    2
    3
    4
    5
    while循环在num = 6时break掉了,所以不会执行else语句
  • 相关阅读:
    定义Java类实现字节流转字符流
    zookeeper中的QuorumPeerMain解析
    Hadoop集群搭建(cluster setup),ssh免密后一直要求输入密码的原因
    cd .ssh返回-bash: cd: .ssh:No such file or directory怎么办
    安装jdk配置环境变量后jps command not found
    Redis简介二
    bash重定向
    Redis简介
    maven项目下pom.xml依赖报错
    《《《zTree视频学习笔记
  • 原文地址:https://www.cnblogs.com/Hades123/p/10820256.html
Copyright © 2011-2022 走看看