Java教程

6. 流程控制

本文主要是介绍6. 流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、 流程控制理论

1.什么是流程控制

流程控制指的是控制程序(事务)的执行流程

2.程序的执行流程分类

顺序结构:

       从上往下依次执行     

分支结构:

       根据条件判断的结果作出不同的执行流程

Typora中flow语法实现分支结构流程图:
st=>start: x = 10

cond=>condition: x > 15?

sub1=>subroutine: 打印x的值不大于15

io=>inputoutput: 打印x的值大于15

e=>end: 结束

st->cond                              

cond(yes)->io->e                         

cond(no)->sub1(right)->e 

 循环结构:

       根据条件判断的结果反复的做相同的事情(重复执行某些代码块)

Typora中flow语法实现循环结构流程图:
st=>start: a = 1

op=>operation: a = a + 1

cond=>condition: a > 10 ?

sub1=>subroutine: 打印a的值

io=>inputoutput: 打印a大于10

e=>end: 结束

st->op->cond                               

cond(yes)->io->e                        

cond(no)->sub1(right)->op  

 二、必知必会的知识点

1. 在python中使用缩进来代表代码的从属关系

if 18 > 19:
    print('阿根廷足球巨星梅西')  # 此行代码属于if判断,是否执行由if判断的结果决定

2. 并不是所有的代码都可以有子代码(从属的代码)

      目前可以有的:

                            if

                            else

                            while

3.如果多行代码属于同一个父代码,那么这多行代码需要保证相同的缩进

          在python中推荐使用4个空格来表示缩进

4.具有相同缩进量的代码彼此之间按照顺序结构执行,没有从属关系

5.如果一行代码的结尾是冒号结束,那么紧挨着的下一行必然缩进

       冒号的含义相当于要拥有子代码

       例如:if、else、while

 三、分支结构

1.  单if分支

"""
语法

if 条件:
    条件成立之后执行的子代码
    子代码可以有多行
"""
# 需求:如果进球数大于91 比梅球王进球还多
goals = 95  # 定义进球的数量
if goals > 91:  # 判断进球是是否大于91
    print('比梅球王进球还多')

2.  if、else分支

"""
语法

if 条件:
    条件成立之后执行的子代码
    子代码可以有多行
else:
    条件不成立执行的子代码
    子代码可以有多行
"""
# 需求:如果进球数大于91,比梅球王进球数还多  否则,继续训练
goals = 59
if goals > 91:
    print('比梅球王进球数还多')
else:
    print('继续训练')

3.  if、elif、else分支

语法

if 条件1:
    条件1成立时执行的子代码
    子代码可以有多行
elif 条件2:
    条件1不成立;;;条件2成立执行的子代码
    子代码可以有多行
elif 条件3:
    条件1和条件2都不成立;;;条件3成立执行的子代码
    子代码可以有多行
else:
    上述条件都不成立;;;执行的子代码
    子代码可以有多行
"""
需求:如果球员名字是梅西则打印阿根廷球王,如果是C罗则打印葡萄牙球王,如果是林加德则打印大英帝国球王,如果是其他名字则打印其他球王
"""
name = input('请输入球员名字:')
if name == '梅西':
    print('阿根廷球王')
elif name == 'C罗':
    print('葡萄牙球王')
elif name == '林加德':
    print('大英帝国球王')
else:
    print('其他球王')

4. if的嵌套

age = int(input('请输入年龄:'))
if age <= 25:
    print('读博士之前的年龄')
    if age > 22:
        print('正是读硕士的年龄')
    else:
        print('读小学、中学、大学的年龄')
else:
    print('正是读博士的年龄')

四、 循环结构

1.while循环语法

while 条件:
    条件成立之后执行的循环体代码

1.判断条件是否成立,如果成立则执行循环体代码
2.循环体代码执行完毕后,再次判断条件是否成立;
  如果成立则继续执行循环体代码;
  如果不成立则跳出循环
# 编写一个无限输入用户名和密码的登录程序
while True:  # 条件恒成立,无限循环
    name = input('请输入用户名:')  # 获取输入的用户名
    passwd = input('请输入密码:')  # 获取输入的密码
    if name == '梅西' and passwd == '30':  # 判断用户名或密码是否正确
        print('登录成功')
    else:
        print('用户名或密码错误')

2. while + break的应用

    break是用于直接结束本层循环

    break只能结束所在的那一层循环

# 当用户名和密码输入正确时,显示登录成功,并且结束循环,按顺序执行同级代码;
# 输入错误时,显示用户名或密码错误,无限获取输入,直到正确

while True:  # 条件恒成立,无限循环
    name = input('请输入用户名:')  # 获取输入的用户名
    passwd = input('请输入密码:')  # 获取输入的密码
    if name == '梅西' and passwd == '30':  # 判断用户名或密码是否正确
        print('登录成功')
        break  # 结束本层循环
    else:
        print('用户名或密码错误')
print('阿根廷球王梅西')  # 此行代码的运行意味着循环已结束

3.  while+continue的应用

    用于结束本次循环,直接开始下一次循环(continue的使用频率比break要低)

# 打印1~10的数字(除了4不打印)
num = 1  # 令初始值等于1,按顺序执行同级别代码,开始循环
while num < 11:  # 当num的值小于11的时候,执行循环体代码
    if num == 4:
        num += 1
        continue  # 当num的值为4时,结束本次循环,直接跳到条件判断的地方重新执行;;如果没有上一行的赋值代码,程序将陷入死循环
    print(num)
    num += 1

 五、 debug的用法

debug可以将瞬间执行完成的代码一步一步执行

六 、作业

 1.编写一个猜年龄的游戏:

基本要求
如果不对的情况下可以猜三次 如果对了直接结束
拔高练习
三次机会用完之后提示用户是否继续猜测 如果用户输入了y
则再给用户三次机会 如果用户输入n则直接结束

count = 0
while count < 3:
    age = int(input('请输入您猜想的数字:'))
    if age == 18:  # 猜年龄是否为18
        print('猜对了')
        break  # 猜对直接结束本层循环
    else:
        print('猜错了')
        count += 1  # 猜测的次数加1
        if count == 3:  # 当猜错3次时
            result = input('已猜错3次,继续猜3次请按y,结束请按n:')  # 获取用户输入
            if result == 'y':  # 用户想继续猜3次
                count = 0  # 将count的计数归零,继续执行循环
            elif result == 'n':  # 用户不想继续猜3次
                break  # 错误次数已经达到,直接结束本层循环

 

这篇关于6. 流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!