精华内容
下载资源
问答
  • 常见的三种流程控制结构
    2021-08-29 21:54:46

    支持3种最基本的控制结构:顺序结构、循环结构和选择结构

    1.顺序结构

    (1)数据的输入input

    input命令用来提示用户应从键盘输入数值、字符串和表达式,并接受该输入。

    input命令常用的调用格式:

    A=input(提示信息,选项)

    (2)数据的输出disp

    在命令行窗口输入数据时,可以使用disp函数,其调用格式为:

    disp(输出项)

    输出项可以是字符串,也可以是矩阵

    2.循环结构

    两种:for……end 结构  和while ……end结构

    (1)for……end 结构

    for语句的语法结构为:

     for 循环变量=开始量:增量:结束量

            循环体语句

    end

    (2)while ……end结构

    while 语法格式如下:

    while 表达式

        循环体语句

    end

    3.选择结构

    (1)if结构  三种格式

    格式1:

            if 条件

                    语句组

            end

    格式2:

            if  条件

                    语句组1

            else

                    语句组2

            end

    格式3:

    if 条件1

            语句组1

    elseif  条件2

            语句组2

    ……

    elseif  条件m

            语句组m

    elseif 

            语句组m+1

    end

    (2)switch……case 结构

            switch  表达式

    case 值1

            语句组1

    case 值2

            语句组2

    ……

    case 值 m

       语句组m

    otherwise

      语句组m+1

    end

    其他流程控制语句

    (1)break命令

    (2)continue命令

    (3) return命令

    (4)pause命令

    更多相关内容
  • Python基础知识之4——控制结构

    千次阅读 2021-01-13 21:36:12
    三种控制结构也是结构化程序设计的核心,与之相对的是面向对象程序设计。有名的 c 语言就是结构化语言,而 c++、 Java 或者 python 等 都是面向对象的语言。顺序结构顺序结构就是按照你写的代码顺序执行,也就是一...

    控制结构就是控制程序执行顺序的结构。

    Python 有三大控制结构,分别是顺序结构、分支结构(选择结构)以及循环结构。任何一个项目或者算法都可以使用这三种结构来设计完成。这三种控制结构也是结构化程序

    设计的核心,与之相对的是面向对象程序设计。有名的 c 语言就是结构化语言,而 c++、 Java 或者 python 等 都是面向对象的语言。

    顺序结构

    顺序结构就是按照你写的代码顺序执行,也就是一条一条语句顺序执行。这种结构的逻辑最简单,就是按顺序执行就行了。

    分支结构(选择结构)

    分支结构又称为选择结构,意思是程序代码根据判断条件,选择执行特定的代码。如果条件为真,程序执行一部分代码;否则执行另一部分代码。

    在 Python 语言中,选择结构的语法使用关键字 if、 elif、 else 来表示,具体语法如下:

    基本语法有一下几种:

    1、if

    2、if...else

    3、if...elif...else

    4、if...elif...elif......else

    5、if 嵌套

    #分支结构#if

    a = 1

    if a == 1:print('此时a等于1')#if...else

    a = 2

    if a == 1:print('此时a等于1')else:print('此时a不等于1')#if...elif...else

    a = 2

    if a == 1:print('此时a等于1')elif a == 3:print('此时a等于3')else:print('此时a等于2')#if...elif...elif...else

    a = 2

    if a == 1:print('此时a等于1')elif a == 3:print('此时a等于3')elif a == 4:print('此时a等于4')else:print('此时a等于2')#if嵌套

    a = 2b= 5

    if a == 2:if b == 3:print('此时a等于2,b等于3')else:print('此时a等于2,b不等于3')else:print('此时a不等于2')

    循环结构

    循环结构是使用最多的一种结构。循环结构是指满足一定的条件下,重复执行某段代码的一种编码结构。Python的循环结构中,常见的循环结构是for循环和while循环。

    for循环

    for 循环为循环结构的一种。在 Python 中,for 循环是一种迭代循环,也就是重复相同的操作,每次操作都是机遇上一次的结果而进行。 for 循环经常用与便利字符串、列表、字典等数据结构,for循环需要知道循环的次数。基本语法是:

    for...in...:

    例子:

    #利用了遍历字符串

    str_data = 'Now is better than never'count=0for str_d instr_data:#print("遍历字符串: ",str_d)

    #统计字符串中 e出现的次数

    if str_d == 'e':

    count+=1

    print(count)

    遍历整个列表:

    遍历整个列表是利用 for 循环得到列表中的每一个元素值,然后执行相同的操作。但同时需要用到 index 和 value 值的时候, python 利用 enumerate()函数。 函数enumerate()

    的参数为可遍历的变量,如字符串,列表等均可,返回 enumerate 类。

    #例子1、遍历列表

    name_sanguo = ['曹操','孙权','刘备','诸葛孔明','周瑜','关羽','张飞']print(F"列表元素有: {name_sanguo}")#对列表中每一个元素执行相同的操作

    for name inname_sanguo:#print(name.title()+' 是《三国演义》中的角色名字。 ')# title()方法是返回字符串首字母大写,如果不以字母开头的,则全部为大写,在这里title()的意义并不大

    print(name + '是《三国演义》中的角色名字。')'''结果为:

    列表元素有: ['曹操', '孙权', '刘备', '诸葛孔明', '周瑜', '关羽', '张飞']

    曹操 是《三国演义》中的角色名字。

    孙权 是《三国演义》中的角色名字。

    刘备 是《三国演义》中的角色名字。

    诸葛孔明 是《三国演义》中的角色名字。

    周瑜 是《三国演义》中的角色名字。

    关羽 是《三国演义》中的角色名字。

    张飞 是《三国演义》中的角色名字。'''

    #例子2、使用 enumerate()函数得到索引和值,此方式经常被使用

    for index,name inenumerate(name_sanguo):print(name + f'是《三国演义》里的第{index + 1}个人物')#加1是因为python计数是从0开始的

    '''结果是:

    曹操是《三国演义》里的第1个人物

    孙权是《三国演义》里的第2个人物

    刘备是《三国演义》里的第3个人物

    诸葛孔明是《三国演义》里的第4个人物

    周瑜是《三国演义》里的第5个人物

    关羽是《三国演义》里的第6个人物

    张飞是《三国演义》里的第7个人物'''

    for循环创建数值列表:经常用到,因为列表非常适合用于存储数字集合。常常使用list(range())的方法来创建一个列表。注意range(star,end,step)中,包头不包尾,即从star开始

    (可省略,省略时候默认为0开始),到end-1结束,不包含end,step为步长(可省略,省略默认为1)。

    #生成数字序列

    for i in range(0,11,2):print(F"10以内的偶数是 {i}")'''结果是:

    10以内的偶数是 0

    10以内的偶数是 2

    10以内的偶数是 4

    10以内的偶数是 6

    10以内的偶数是 8

    10以内的偶数是 10'''

    #len()求列表的长度,当列表不知道长度的时候,使用

    b =[]

    a= [1,3,4,5,3,7,8,43,43,5,5,66,7,43,22,11,34]for i inrange(len(a)):

    b.append(a[i]* 2)print('列表a的值为:',a)print('列表b的值为:',b)'''结果是:

    列表a的值为: [1, 3, 4, 5, 3, 7, 8, 43, 43, 5, 5, 66, 7, 43, 22, 11, 34]

    列表b的值为: [2, 6, 8, 10, 6, 14, 16, 86, 86, 10, 10, 132, 14, 86, 44, 22, 68]'''

    #list() + range()= 数值列表

    even_numbers = list(range(2,11,2))print(even_numbers)'''结果为:

    [2, 4, 6, 8, 10]'''

    for循环创建列表解析 :列表解析是将 for循环和创建新元素的代码合并成一行,在实际应用中较为常见。语法为:变量名 = [变量名 2表达式 for 变量名 2 in 序列]

    #生成10以内数的平方数

    squares = [value**2 for value in range(1,11)]print('生成10以内数的平方数:',squares)'''结果为:

    生成10以内数的平方数: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]'''

    遍历字典:

    字典中的键值对可能有上百万个。 Python 支持使用 for 循环遍历字典,包括遍历所有键值对(使用 items()方法)、遍历字典中的所有键(使用 keys()方法)以及遍历字典中

    的所有值(使用 values()方法)。

    #遍历字典

    name_money = {'王老师':30000,'侯老师':28000,'李老师':33000,'张老师':25000}#使用 for()循环遍历字典中的 key-value,方法 items()返回键值对列表

    print("各个老师的月薪是:")for key,value inname_money.items():print(f'\t\t{key}的月薪是{value}元')'''结果是:

    各个老师的月薪是:

    王老师的月薪是30000元

    侯老师的月薪是28000元

    李老师的月薪是33000元

    张老师的月薪是25000元'''

    #遍历字典中的所有键,使用方法 keys()

    print('老师有:')for name inname_money.keys():print(f'\t{name}')'''结果是:

    老师有:

    王老师

    侯老师

    李老师

    张老师'''

    #遍历字典中的所有值,使用的方法是 values()

    print('老师们的月薪由以下结构组成:')for value inname_money.values():print(f'\t\t\t{value}')'''结果是:

    老师们的月薪由以下结构组成:

    30000

    28000

    33000

    25000'''

    嵌套for循环:

    #例子

    for i in range(0,4):for j in range(0,7):print("*",end="")print(' ')#结果是:

    '''结果是:

    *******

    *******

    *******

    *******'''

    接下来利用for循环做一两个小小的实际应用:

    #小项目实战1:生成九九乘法表

    '''项目描述:根据嵌套 for 循环生成九九乘法表

    提示:

    1、根据九九乘法表的规律,找到两个 for 循环的边界值 。

    2、使用 range()函数生成数字集合'''

    for i in range(1,10):for j in range(1,i + 1):print(str(j) + '*' + str(i) + '=' + str(i*j) + ' ',end = "")print(' ')#结果是:

    '''1*1=1

    1*2=2 2*2=4

    1*3=3 2*3=6 3*3=9

    1*4=4 2*4=8 3*4=12 4*4=16

    1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

    1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

    1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

    1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

    1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81'''

    #小项目实战2:打印星图

    '''*

    ***

    *****

    *******

    *****

    ***

    *

    项目描述:使用 for循环打印上图

    提示:

    1、使用两个for循环

    2、找对in后面的边界值,使用 range()'''n= 8

    for i in range(1,n,2):for j inrange(i):print('*',end = "")print(' ')for k in range(1,n,2):for m in range(n-2-k):print('*',end = "")print(' ')#结果是:

    '''*

    ***

    *****

    *******

    *****

    ***

    *'''

    while循环:

    while循环不需要知道循环的次数,即无限循环 ,直到条件不满足为止。

    注意:

    1、循环也是以冒号(:)结尾

    2、条件为各种算术表达式,

    a) 当为真时,循环体语句组 1,重复执行

    b) 当为假是,循环体语句组 2,停止执行

    3、如果循环体忘记累计,条件判断一直为真,则为死循环。循环体一直实行。

    a) 死循环有时候经常被用来构建无限循环

    b) 可以使用 ctrl+c 终止,或者停止 IDE

    #构造计数器,记录 5次

    print('使用 while循环构造计数器,并且记录 5次')

    count_number=0while count_number <=5:print(f'当前数字是 {count_number}')

    count_number+= 1 #循环下一次的值,如果忘记则为死循环

    '''结果是:

    使用 while循环构造计数器,并且记录 5次

    当前数字是 0

    当前数字是 1

    当前数字是 2

    当前数字是 3

    当前数字是 4

    当前数字是 5'''

    用户输入

    为了更好的体验,程序有时候使用用户输入。在 Python 中使用函数 input()让程序暂停工作,等待用户输入后接着执行。当使用该函数时,一定要指出清晰而易于明白的指示,

    否则用户不知道要输入什么内容。

    #计算任意数的和, 并计算出平均数.当用户输入n时,退出

    sum = 0.0count=0

    more_data= "yes"

    while "y" in more_data: #more_data[0] == "y":

    x = int(input("Enter a number:"))

    sum= sum +x

    count= count + 1more_data= input("Do you have more numbers (y or n)?")print("\nThe sum of the number is",sum)print("\nThe average of the number is", sum /count)'''结果:

    Enter a number: 89

    Do you have more numbers (y or n)?y

    Enter a number: 56

    Do you have more numbers (y or n)?n

    The sum of the number is 145.0

    The average of the number is 72.5'''

    break 与 continue 语句

    break 与 continue 语句可以在循环结构中使用,比如 for,while。

    break 语句是立即退出 while 循环,不再运行循环中余下的代码,也不管条件判断的结果是否为真。break 语句经常被用来控制程序执行流,也就是控制哪些代码可以执行,哪

    些代码不执行。

    continue 语句是结束本次循环,返回到 while 语句开始的位置,接着条件判断。如果为真,程序接着执行,否则退出。也就是当循环或判断执行到 continue 语句时,continue 后

    的语句将不再执行,会跳出当次循环,继续执行循环中的下一次循环。

    两者的区别是

    continue 语句跳出本次循环,只跳过本次循环 continue 后的语句

    break 语句跳出整个循环体,循环体中未执行的循环将不会执行

    #点名系统,一共 100个人。当数到 50的时候,ᨀ示以下;当数到 60时,停止报数

    for i in range(101):if i ==50:print(f'你是第{i}名,请接着报数')continue

    if i == 60:print(f'你是第{i}名,停止报数: end')break

    '''结果是:

    你是第50名,请接着报数

    你是第60名,停止报数: end'''

    使用while操作列表和字典

    列表和字典可以存储大量信息。 for 循环可以变量其每一个元素或者键值对,但是最好不要在 for 循环修改其值,否则导致 python 不能正常运行;如果遍历列表或字典的同时,

    修改其值,可以使用 while 循环。

    #例子1:使用while操作列表#老师副教授竞选#首先创建一个列表,用来存放参加副教授评比的老师,其中侯老师不符合参选资格;#再创建一个空列表,用来收集已经获得副教授的称号的老师

    fu_jiaoshou = ['张老师','吴老师','张老师','王老师','颜老师','侯老师']

    fu_js=fu_jiaoshou.copy()

    ru_xuan=[]#使用循环,选择老师进行副教授评比,直到所有人评比结束#把符合副教授资格的收集起来,不符合的删除

    whilefu_jiaoshou:

    pingxuan=fu_jiaoshou.pop()print(f'正在参加副教授评选的是:{pingxuan}')if '侯老师' inpingxuan:print(f'{pingxuan}不具备资格参加副教授评选')continue

    else:

    ru_xuan.append(pingxuan)print('获得副教授称号的老师有:')for index inru_xuan:print('\t'+index.title())print('参加评选是以下老师:')for index infu_js:print('\t'+index.title())'''结果:

    正在参加副教授评选的是:侯老师

    侯老师不具备资格参加副教授评选

    正在参加副教授评选的是:颜老师

    正在参加副教授评选的是:王老师

    正在参加副教授评选的是:张老师

    正在参加副教授评选的是:吴老师

    正在参加副教授评选的是:张老师

    获得副教授称号的老师有:

    颜老师

    王老师

    张老师

    吴老师

    张老师

    参加评选是以下老师:

    张老师

    吴老师

    张老师

    王老师

    颜老师

    侯老师'''

    #例子2:使用while操作字典#小项目实战3:创建自己的通讯录

    '''项目描述: 请为自己创建一个通讯录,效果如下图所示。要求,必须有欢迎界面和指令提示。

    |---欢迎进入通讯录程序---|

    |---1、 查询联系人资料---|

    |---2、 插入新的联系人---|

    |---3、 删除已有联系人---|

    |---4、 退出通讯录程序---|

    请输入指令代码:1

    请输入联系人姓名: 刘德华

    该联系人不存在!

    请输入指令代码:2

    请输入联系人姓名:刘德华

    请输入联系人电话:136XXXXXXX

    联系人加入成功!

    请输入指令代码:2

    请输入联系人姓名:杨幂

    请输入联系人电话:177xxxxxxxxx

    联系人加入成功!

    请输入指令代码:1

    请输入联系人姓名:杨幂

    杨幂 : 177xxxxxxxxx

    请输入指令代码:4

    |---感谢使用通讯录程序---|

    提示:

    1、使用字典构建通讯录

    2、使用 while 循环一直判断是不是进行

    3、使用 if 语句判断指令类型。'''

    #创建一个空的字典,用来存放通讯录

    phone_book ={}#使用多行打印的方式,打印出欢迎界面

    print('''|---欢迎进入通讯录程序---|

    |---1、 查询联系人资料---|

    |---2、 插入新的联系人---|

    |---3、 删除已有联系人---|

    |---4、 退出通讯录程序---|''')#设置循环条件

    num =True

    i= int(input('请输入指令代码:'))whilenum:if i == 1:

    name= input('请输入联系人姓名:')if name inphone_book.keys():print(f'{name} :{phone_book[name]}')

    i= int(input('请输入指令代码:'))else:print('该联系人不存在!')

    i= int(input('请输入指令代码:'))elif i == 2:

    name= input('请输入联系人姓名:')

    phone_num= input('请输入联系人电话:')

    phone_book[name]=phone_num#判断新添联系人是否成功

    if name inphone_book.keys():print('联系人加入成功!')

    i= int(input('请输入指令代码:'))else:print('联系人加入失败!')print('''|---欢迎进入通讯录程序---|

    |---1、 查询联系人资料---|

    |---2、 插入新的联系人---|

    |---3、 删除已有联系人---|

    |---4、 退出通讯录程序---|''')

    i= int(input('请输入指令代码:'))elif i == 3:

    name= input('请输入联系人姓名:')if name inphone_book.keys():delphone_book[name]print(f'已从通讯录中删除 {name} 及其联系方式')

    i= int(input('请输入指令代码:'))else:print('该联系人不存在!')

    i= int(input('请输入指令代码:'))elif i == 4:print('|---感谢使用通讯录程序---|')break

    #判断输入的指令是否在[1,2,3,4]中,如果不是,则让用户重新输入正确的指令

    else:print('输入的指令错误!')

    i= int(input('请输入指令代码:'))'''结果是:

    |---欢迎进入通讯录程序---|

    |---1、 查询联系人资料---|

    |---2、 插入新的联系人---|

    |---3、 删除已有联系人---|

    |---4、 退出通讯录程序---|

    请输入指令代码:1

    请输入联系人姓名: 刘德华

    该联系人不存在!

    请输入指令代码:2

    请输入联系人姓名:刘德华

    请输入联系人电话:136XXXXXXX

    联系人加入成功!

    请输入指令代码:2

    请输入联系人姓名:杨幂

    请输入联系人电话:177xxxxxxxxx

    联系人加入成功!

    请输入指令代码:1

    请输入联系人姓名:杨幂

    杨幂 : 177xxxxxxxxx

    请输入指令代码:4

    |---感谢使用通讯录程序---|'''

    展开全文
  • 顺序、选择和循环语句(程序三种基本控制结构) 复合语句 1、在了解程序三种基本控制结构之前,我们先了解以下什么是复合语句,即块语句。 2、与C语言及其他语言不同,Java语言的复合语句是以整个块区为单位的...

    顺序、选择和循环语句(程序的三种基本控制结构)

    复合语句

    1、在了解程序的三种基本控制结构之前,我们先了解以下什么是复合语句,即块语句。

    2、与C语言及其他语言不同,Java语言的复合语句是以整个块区为单位的语句,所以又称为块语句。复合语句由开括号“ { ”开始,闭括号“ } ”结束。

    3、在前面的学习中我们已经接触到了这种复合语句,例如:在定义一个类或方法时,类体就是以“ { ”作为开始,“ } ”作为结束的标记的,方法体同样也是以“ { ”作为开始,“ } ”作为结束的标记的。复合语句中的每个语句都是从上到下被执行。复合语句都是以整个块区为单位,能够用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句,例如:在类体里面嵌套方法体或内部类。

    4、在使用复合语句时要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够被使用。如果在某个变量的作用域外使用该变量,则会出现错误。

    package com.zyt.lesson01;
    
    public class Demo {
    	public static void main(String args[]) {
    		int num = 0;
    		for (int i = 1; i <= 10; i++) {
    			num += i;
    		}
    		System.out.println(num);
    	}
    }
    //  输出结果:55  
    
    package com.zyt.lesson01;
    
    public class Demo {
    	public static void main(String args[]) {
    		for (int i = 1, num = 0; i <= 10; i++) {
    			num += i;
    		}
    		System.out.println(num);
    	}
    }
    //  报错
    /*  Exception in thread "main" java.lang.Error: 无法解析的编译问题:
    	num cannot be resolved to a variable
    
    	at com.zyt.lesson01.Demo.main(Demo.java:9)  */
    //  在for循环语句中声明的局部变量num,其作用域在for循环体中。在循环体之外使用num将会报错。
    

    选择语句(条件语句)

    我们都知道,计算机的主要功能是提供用户计算的功能,但在计算的过程中会遇到各种各样的情况,针对不同的情况会有不同的处理方法,这就要求程序开发语言要具有处理决策的能力。

    一、if 条件语句

    1、决策分支

    决策:就是人们为某件事拿主意,下决心做出合理的选择的过程

    2、if 语句

    Java中处理决策的方法之一:if 语句

    1. 第一种形式的判断语句
    //  语法一:
    if(布尔表达式){
        语句;
    }
    //如果这个布尔表达式的结果是true,则执行大括号内的语句;如果这个布尔表达式的结果是false,则跳过大括号内的语句,而继续执行大括号外的语句。
    
    
    //  语法二:
    if(布尔表达式)
        语句;
    //如果布尔表达式的结果是true,则执行圆括号后面的第一个分号内的语句;如果布尔表达式的结果为false,则跳过第一个分号内的语句,继续执行后面的语句。
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-92EQ0HeE-1607846568787)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图1.jpg)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eLVwTbCs-1607846568790)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图2.jpg)]

    常见的错误:

    • if(表达式)的后面多加了一个分号

      if(表达式); { }

      if(表达式); 
      {  
         语句;
      		  }
      

      这样的写法编辑器不会报错,但是是错误的,这时候 if 只会控制分号前的语句,不会控制分号后面花括号内的语句。

    • 没加大括号{ }

      if(表达式)
         语句;
         语句;
      

      这样的写法编辑器不会报错,但也是错误的。这时候 if 只能控制第一个分号前的语句,而控制不到第二个分号前的语句。

    • 在花括号后面加分号

      if(表达式) 
      {  
         语句;
      		  };
      

      这样的写法编辑器会报错,这样的语法是错误的

    1. 第二种形式的判断语句
    //  语法
    if(布尔表达式){
        语句一;
    }else{
        语句二;
    }
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nTfsOqjg-1607846568791)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图3.jpg)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y65b5x5Q-1607846568793)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图4.jpg)]

    实例:(流程图如上)

    public class Demo{
        public static void main(String args[]){
            int balance = 500;
            if(balance==500){
                System.out.println("买豪车");
            }else{
                System.out.println("买自行车");
            }
            System.out.println("吃饭睡觉");
        }
    }
    //  输出结果:吃饭睡觉
    

    常见的错误:

    • 未加大括号{ }

      else 之前若有两个 if 且都没加大括号,则这个 else 会匹配离它最近的那个 if

      if()
          if()
              else{
      		
              }
      
    • else 不能单独使用,必须和关键字 if 一起使用

    1. 第三种形式的判断语句
    //  语法
    if(表达式 1){
    	语句 1;
        ......
        
    }else if(表达式 2){
    	语句 2;
        ......
    
    }else if(表达式 m){
    	语句 m;
        ......
    
    }else{
    	语句 n;
        ......        
    }
    

    3、在书写判断语句时要遵循一定的书写规范,否则容易出现错误

    布尔表达式书写规范

    boolean flag = flase;
    if(flag==true)		
    //这样书写没有错误,但如果不注意漏写一个"="就会出现错误,但不会报错。
    //因此更规范的写法应该为:if(flag) 和 if(!flag)
    

    4、if 判断语句的总结

    1. 表达式:关系表达式或逻辑表达式

    2. 表达式的运算结果应该是真或者假

      真:执行该语句

      假:跳过该语句,执行下一条语句

    3. ” 语句 “可以是单语句也可以是复合语句。

    4. else if 可以有多条。

    5. if 和 else if 都需要判断表达式真假,else 不需要,else if 和 else 必须配合 if 一起使用,不能单独使用。

    二、Switch 多分支语句

    在编程中经常会碰到这样一种问题,就是我们需要判断一个变量是否等于某一个值,如果不等于,再用另一个值来与它做对比,比如我们要实现给某一个同学打评语的功能

    char grade = 'B';
    if(grade=='A'){
        System.out.println("真棒");
    }
    if(grade=='B'){
        System.out.println("做的不错");
    }
    if(grade=='C'){
        System.out.println("再接再厉");
    }
    /*
    进行多次判断实现多选一
    代码过于繁杂
    每一个判断语句都要测试
    容易混乱
    */
    

    如果需要写几十个 if 语句,维护起来将会非常的困难,为了简化这种多层判断的开发效率,Java提供了Switch语句

    1、

    Switch中用于判断的参数,可以是byte、short、int、String、枚举

    ! String和枚举是在 Java 7 之后才允许的,现在很多的公司做项目都用的是 JDK 1.6 ,所以不是很推荐使用字符串作为switch的参数

    long、float、double 类型的参数是不能放在 Switch 中的

    2、

    default 的位置不固定,可以放在 switch 语句块中的任何一个位置,只有在所有的 case 都无法匹配的情况下,才会执行 default 之后的语句

    default 在 switch 语句块是可写可不写的

    String name = "张三";
    switch(name){
        default :
            System.out.println("查无此人");      
        case "张三" :
            System.out.println("张三报道!"); break;
        case "李四" :
            System.out.println("李四报道!"); break;
        case "王五" :
            System.out.println("王五报道!"); break;
    }
    //输出结果:张三报道!
    
    String name = "张三";
    		switch (name) {
    		default:
    			System.out.println("查无此人");
    		case "张三":
    			System.out.println("张三报道!");
    		case "李四":
    			System.out.println("李四报道!");
    		case "王五":
    			System.out.println("王五报道!");
    /*
    输出结果:
    张三报道!
    李四报道!
    王五报道!
    */
    String name = "张三";
    		switch (name) {
    		case "张三":
    			System.out.println("张三报道!");
    		case "李四":
    			System.out.println("李四报道!");
    		case "王五":
    			System.out.println("王五报道!");
    		default:
    			System.out.println("查无此人");
    		}    
    /*
    输出结果:
    张三报道!
    李四报道!
    王五报道!
    查无此人
    */                
    

    3、

    break 用于跳出 switch 语句,也是是可写可不写的

    //语法
    Switch(用于判断的参数){
        case 常量表达式 1 :  语句 1;   break; 		//break是用于跳出语句的,可以不写
        case 常量表达式 2 :  语句 2;   break;
        ......
        case 常量表达式 n :  语句 n;   break;
        default :  语句 n+1;   break;		//default也是可不写的
    }
    

    4、

    switch 语句的执行顺序:

    从表达式值等于某个 case 语句后的值开始,它下方的所有语句都会被运行,直到遇见一个 break 为止

    实例:

    public class Demo{
        public static void main(String args[]){
            int score = 10;
            switch(score){
                case 10: 
                case 9: System.out.println("成绩为优");  break;
                case 8: System.out.println("成绩为良");  break;
                case 7:
                case 6: System.out.println("成绩为中");  break;
                case 5:
                case 4:
                case 3:
                case 2:
                case 1:
                case 0: System.out.println("成绩为差");  break;
                default : System.out.println("成绩无效");  break;
            }
        }
    }
    //输出结果:成绩为优
    
    int i;
    for (i = 0; i < 3; i++) {
        switch (i) {
            case 0:
                printf("%d", i);
            case 2:
                printf("%d", i);
            default:
                printf("%d", i);
        }
    }
    //输出结果:000122
    

    循环语句

    do while 语句的执行效率比 while 语句高

    一、While循环语句

    1、while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否继续反复执行这个语句

    2、语法

    while(条件表达式){		//返回布尔值,判断是否继续执行语句
        执行语句;		//可被循环执行的语句
    }
    

    实例:

    //用计算机循环计算从1加到100的累加
    public class Demo{
        public static void main(String args[]){
            int sum = 0;
            int i = 1;
            while(i<=100){
                sum+=i;
                i++;
            }
            System.out.println(sum);
        }
    }
    //输出结果:5050
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jUHIdheF-1607846568795)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图6.jpg)]

    3、三个注意!

    • 表达式不允许为空
    • 表达式不应该是常数(true 或 false),这样会进入死循环
    • 循环体中必须要有改变条件表达式值的语句,否则将成为死循环

    二、do while循环语句

    1、do while 循环语句与 while 循环语句类似,它们之间的区别是 while 语句为先判断再执行,do while 语句为先执行,再判断。也就是说,do while 语句中,{ }的程序段至少要被执行一次。

    2、语法

    do{
        执行语句;
    }while(条件表达式);
    

    3、do while 语句与 while 语句的一个明显区别是,do while 语句在结尾处多加了一个分号

    根据do while 循环语句的语法特点总结出的do while 循环语句的执行过程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oa7uXbB0-1607846568796)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图5.jpg)]

    4、当我们想使用某个社交网站时,都会要求我们登录或注册新账户,为了防止用户手误,都会要求我们输入两次密码。如果两次密码不一致,则会提示用户,两次输入的密码不一致,请重新输入,用户就会重新输入密码了。要实现这个功能,需要先让用户输入密码,然后系统再做判断。如果条件不符合,就要求用户重复执行输入密码的操作,我们可以发现,注册的过程中有两个特点:

    • 先输入密码,再做判断
    • 如果判断一直假,则循环执行同一逻辑

    此时,如果使用 while 循环语句来书写代码,不仅需要在循环外对输入的信息做判断,还要在循环内也对输入的信息做判断,这样重复的代码,会使程序笨重有余,不过我们可以使用 do while 语句完美的解决这个问题。

    //密码输入
    public class Demo{
        public static void main(String args[]){
            Scanner sc = new Scanner(System.in);		//创建一个扫描器
            String pwd1 = "0";
            String pwd2 = "-1";
            
            do{
                System.out.println("请输入密码:");
                pwd1 = sc.nextLine();
                System.out.println("请再次输入密码:");
                pwd2 = sc.nextLine();
                if(!pwd1.equals(pwd2)){
                    System.out.println("您两次输入的密码不一致,请重新输入!");
                }while(!pwd1.equals(pwd2));
                System.put.println("设置密码成功!");
            }
        }
    }
    

    5、while 和 do while 的比较

    do while 的执行效率比 while 要高


    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dk260RHg-1607846568797)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\比较.jpg)]

    public class Demo{
    	public static void main(String args[]){
            int i=0,j=0;
            System.out.println("j="+j);
            while(i>1){
                j++;
            }
            System.out.println("j="+j);
        }
    }
    /*
    输出结果:j=0
        	j=0
    */
    public class Demo{
    	public static void main(String args[]){
            int i=0,j=0;
            System.out.println("before while j="+j);
            do{
                j++;
            }while(i>1);
            System.out.println("after while j="+j);
        }
    }
    /*
    输出结果:before while j=0
        	after while j=1
    */    
    

    三、for循环语句

    for 循环是 Java 程序设计中最有用的循环语句之一。一个 for 循环可以用来重复执行某条(或多条)语句,直到某个条件得到满足。在 Java 5以后增加了 foreach 语法。

    1、语法

    for(初始化表达式1;布尔表达式2;表达式3){
        语句;
    }
    

    初始化表达式:只在循环开始前运行一次,常用来做赋值操作,最常用的就是给循环变量赋值

    布尔表达式:返回布尔值,控制循环是否继续执行

    表达式:通常是赋值表达式,在完成一次循环之后执行

    每循环一次,布尔表达式和表达式就会交替执行一次

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGnMpocu-1607846568798)(D:\新建文件夹\MarkDown学习\顺序、循环和选择语句\images\流程图7.jpg)]

    2、使用 for 循环,计算从 1 加至 100 的和

    public class demo{
        public static void main(String args[]){
            int sum = 0;
            for(int i=1;i<100;i++){
                sum+=i;	//即sum=sum+i;
            }
            System.out.println("sum="+sum);
        }
    }
    //输出结果:sum=5050
    

    四、foreach循环语句

    1、语法

    for(type x:obj){
        引用了x的java语句;
    }
    

    循环变量 type x,其中 type 为变量类型,x 为变量名,依次将 obj 中的值赋给 x

    obj : 是一个可以被遍历的集合,例如数组

    2、

    遍历:我们可以简单理解为,对数组或集合中的所有元素,逐一访问,依次读取一遍

    数组:就是相同数据类型的元素按一定顺序排列的集合

    int arr[] = {7,10,1};
    for(int x:arr){
        System.out.print(x);
    }
    //输出结果:7101
    
    int sum = 0;
    int arr[] = {1,2,3,4,...,49,50};
    for(int x:arr){
        sum+=x;
    }
    System.out.println("sum="+sum);
    //输出结果:sum=5050
    

    3、百钱买百鸡问题

    鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何

    public class Demo{
    	public static void main(String args[]){
            int cock,hen,chick;
            for(cock=1;cock<=20;cock++){
                for(hen=1;hen<=33;hen++){
                    for(chick=3;chick<=99;chick+=3)
                        if(cock*5+hen*3+chick/3==100){		//百钱
                            if(cock+hen+chick==100){		//百鸡
                                System.out.println("公鸡:"+cock+"母鸡:"+hen+"小鸡:"+chick);
                            }
                        }
                }
            }
        }
    }
    

    循环控制

    循环控制包含两方面的内容,一方面是控制循环变量的变化方式,另一方面是控制循环的跳转。控制循环的跳转需要用到 break 和 continue 这两个关键字,这两条跳转语句的跳转效果不一样,break 是中断跳出循环,continue 是结束当前循环。

    1、在我们编写复杂代码时,通常会碰到一些特殊的情况,要求我们立即中断循环或忽略某次的循环,这就要求要对循环进行控制,循环控制有两个关键字, break 和 continue

    2、break 关键字的使用场景

    while(  ){
        ......
        break;
    }
    
    do{
        ......
        break;
    }while(  );
    
    for(......){
        ......
        break;
    }
    
    switch(  ){
        case 1 :break;
        case 2 :break;
            .....        
    }
    

    break的作用:中断跳出循环

    int i = 1;
    while(i>0){
        i++;
        System.out.println(i);
        if(i==10)
            break;
    }
    System.out.println("循环结束");
    

    3、Loop 标签

    可能有的人会有疑惑:break 控制的是内层循环还是外层循环?

    想要控制这个,我们就要用到 Loop 标签Loop 标签使 break 具有了指向性,将跳出被 Loop 标记的这个循环

    未使用 Loop 标签的场景

    for(int i=0;i<3;i++){
        for(int j=0;j<6;j++){
            if(j==4)
                break;		//跳出内层循环
        }
    }
    

    使用了 Loop 标签的场景

    Loop:for(int i=0;i<3;i++){
        for(int j=0;j<6;j++){
            if(j==4)
                break Loop;		//跳出外层循环
        }
    }
    

    4、continue 关键字的使用场景

    continue 关键字的使用场景与 break 类似,但不适用于 switch

    while(...){
        ...
        continue;    
    }
    
    do{
        ...
        continue;    
    }while(...);
    
    for(...){
        ...
        continue;    
    }
    

    continue 关键字的作用:结束当前循环,执行下一次循环

    for(int i=1;i<=10;i++){
        if(i%2==0)
            continue;
        System.out.println("i="+i);
    }
    

    continue也可以使用 Loop 标签

    for(int i=0;i<3;i++){
        for(int j=0;j<6;j++){
            if(j==4)
                continue;
        }
    }
    
    Loop:for(int i=0;i<3;i++){
        for(j=0;j<6;j++){
            if(j==4)
                continue Loop;
        }
    }
    
    展开全文
  • C语言三种结构

    千次阅读 2020-05-11 16:24:49
    C语言概述 1.C语言特点 ...它是c语言最简单最基础的控制结构,即就是按照顺序从上到下依次执行。 例 #include<stdio.h> int main() { int x,y,z; scanf("%d %d",&x,&y); z=x+y; p

    C语言概述

    1.C语言特点
    语言简洁,紧凑,灵活
    运算符丰富
    数据结果类型丰富
    程序设计结构化,模块化
    语法限制不太严格,程序设计自由度大
    能实现汇编语言的大部分功能,可以直接对硬件操作
    生成目标代码质量高
    可移植性好

    C语言程序的基本结构

    C语言32个关键字
    C语言9种控制结构

    一.顺序结构

    它是c语言最简单最基础的控制结构,即就是按照顺序从上到下依次执行。

    #include<stdio.h>
    int main()
    {
    	int x,y,z;
    	scanf("%d %d",&x,&y);
    	z=x+y;
    	printf("%d\n",z);
    	return 0;
    }
    

    输入

    1 |5 6
    

    输出

    1 |11
    

    上面就是两整数相加的例子
    代码的执行顺序就是从上到下。

    二.条件结构

    即就是根据满足不同的条件而执行不同的代码。
    1.swich语句

    swich()
    {
    	case 常量表达式1:
    		语句序列1:
    	case 常量表达式2:
    		 常量表达式2:
    	   ...
    	 case  常量表达式n:
    	 	 常量表达式n:
    }
    

    switch()括号内为执行的语句。
    示例:

    #include<stdio.h>
    int main()
    {
    	char c;
    	scanf("%c",&c);
    	switch(c)
    	{
    	case'a':printf("1\n");
    		break;
    	case'b':printf("2\n");
    		break;
    	default:printf("0\n");
    	}
    	return 0;
    }
    

    输入

    1 |a
    

    输出

    1 |1
    

    输入

    1 |2
    

    输出

    1 |0
    

    2.if语句
    1.if单重结构:

    if(条件为真)
    {
    	语句1;
    }
    else
    语句2;
    

    2.多重结构:

    if(条件1)
    {
    	语句1;
    }
    else if(条件2)
    {
    	语句2;
    }
    	.
    	.
    	.
    else if(条件i)
    {
    	语句i;
    }
    else
    	语句n;
    

    三.循环结构

    1.while语句

    while(条件)
    	循环语句;
    

    例:

    ```cpp
    #include<stdio.h>
    int main()
    {
    	int a;
    	scanf("%d",&a);
    	while(a<=10)
    		a++;
    	printf("%d",a);
    	return 0;
    }
    

    注:while后无;
    输入

    1 | 5
    

    输出

    1 | 11
    

    2.do-while语句

    do
    {
    	循环体语句;
    }
    while(条件);
    

    注:while后有;
    例:

    #include<stdio.h>
    int main()
    {
    	int a;
    	scanf("%d",&a);
    	do
    	{
    		a++;
    	}
    	while(a<=10);
    	printf("%d",a);
    	return 0;
    }
    

    输入

    1 | 5
    

    输出

    1 | 11
    

    3.for语句

    for(表达式1;表达式2;表达式3)
    	循环体;
    

    先判断是否满足表达式2,若满足则执行循环体后执行表达式3直到不满足表达式2为止。
    例:

    #include<stdio.h>
    int main()
    {
    	int a,i;
    	scanf("%d",&a);
    	for(i=0;i<=10;i++)
    		a+=i;
    	printf("%d",a);
    	return 0;
    }
    

    输入

    1 | 5
    

    输出

    1 | 60
    

    四. 辅助控制结构

    1.continue
    多次循环中结束本次循环进入下次循环。
    2.break
    终止当前的整个循环或从switch()中跳出。
    3.goto
    无条件转向控制结构。
    4.return
    从被调函数返回主调函数的调用点。

    展开全文
  • Python的三种结构,python,三大

    千次阅读 2021-01-15 02:28:18
    结构一,顺序结构自上而下地执行编写的代码分支结构根据不同的情况,走对应的分支,执行不同的代码在Python里面,常用 if elif else 的搭配(1)单分支结构当满足某一条件,即判断条件内容为真值时,所执行后续...
  • python的三种选择语句

    千次阅读 2020-11-20 20:41:40
    一、程序控制结构对于Python程序中的执行语句,默认时是按照书写顺序依次执行的,这时我们说这样的语句是顺序结构的。但是,仅有顺序结构还是不够的,因为有时候我们需要根据特定的情况,有选择地执行...
  • 循序渐进学Python:三种选择语句

    千次阅读 2020-11-22 13:35:36
    一、程序控制结构对于Python程序中的执行语句,默认时是按照书写顺序依次执行的,这时我们说这样的语句是顺序结构的。但是,仅有顺序结构还是不够的,因为有时候我们需要根据特定的情况,有选择地执行...
  • 高效的课件,详细的内容介绍,针对性的代码展示,提高性的练习题目。适合新手或者基础薄弱人员学习,一个PPT解决你编程中常见的错误,最重要的是一人下载多人使用,不受限制,没有隐藏密码
  • Matlab 程序控制结构

    千次阅读 2018-09-03 13:07:35
    一、分支结构  if 条件 语句组 end if 条件 语句组1 else ...另有if …… elseif……else……end形式不做赘述。...二、循环结构 ...continue用于控制for循环或while循环跳过某些执行语句  ...、开关结构 sw...
  • 使用三种基本控制结构构造程序任何程序都可由顺序、选择、重复三种基本控制结构构造。 (1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。 (3)用循环方式对过程...
  • C语言程序三种基本结构

    千次阅读 2017-02-26 17:54:00
    1、程序结构:在C语言程序中,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构;  顺序结构:从头到尾一句接着一句的执行下来,直到执行完最后一句;  选择结构:到某个节点后,会根据一次判断的...
  • 【单选题】以下程序的输出结果是() x=10 y=0 if(x>5)or(x/y>5): print("Right") else: print("Wrong")(1.0分)【单选题】以下代码的输出结果是() def young(age): if 25...
  • 主要选择结构有:if 最常见的选择结构 单一的if语句复有人也称为挖坑 可将程序分为两路 没有满足则不执行 else 与if 合用 可将程序分为路 if(条制件)(语句一) else(.c语言中两选择结构分别是什么if和sw...
  • 【Matlab】MATLAB程序流程控制

    千次阅读 2018-06-26 19:39:08
    程序三种基本结构:顺序结构、选择结构、循环结构程序文件分为脚本文件和函数文件。脚本文件是可以在命令行窗口直接执行的文件,也叫作命令文件;函数文件是定义一个函数,不能直接执行,而必须以函数调用的...
  • 一些常见控制结构如下。 for循环 while循环 if/else语句 try/except语句 生成器表达式 列表推导式 模式匹配 所有的程序最终都需要一控制执行流的方式。本节介绍一些控制执行流的技术。 01 for循环 for循环...
  • Python控制结构总结

    2020-08-16 06:49:15
    -程序控制结构三种 顺序结构:程序按照线性顺序逐渐执行 分支结构:程序根据条件有选择的向程序运行方向执行 循环结构:程序根据一定条件在运行之后返回执行 一、分支结构 单分支结构 if <条件>: <...
  • 第3章 C++程序流程控制 第3章内容 3.1 顺序控制语句 3.2 选择控制语句 3.3 循环控制语句 3.4 跳转...C++程序的语句按其功能可以划分为两类 操作运算语句 流程控制语句 基本的控制结构三种 顺序结构选择结构循环结
  • 通过使用软件体系结构,可以有效地分析用户需求,方便系统的修改,以及减小程序构造风险。 随着软件规模不断地增大和复杂程度日益增高,系统框架架构的设计变得越来越关键。软件框架设计的核心问题是能否复用已经...
  • 流程控制--顺序结构

    千次阅读 2016-05-10 16:05:33
    不论哪一种编程语言,都会...Java同样提供了这两种流程控制结构的语法,Java提供了if和switch两种分支语句,并提供了while,do while和for三种循环语句。 除此之外,JDK5还提供了一种新的循环,foreach循环,能以更简
  • CS/BS架构==黄色标注部分重点注意==CS结构BS结构CS结构与BS结构比较==有问题可以在评论指正,欢迎讨论,谢谢大家!!== 黄色标注部分重点注意 CS结构        •CS(Client/Server...
  • 这里写目录标题实验目的实验内容实验要求六排序方法细解直接插入排序冒泡排序简单选择排序希尔排序快速排序归并排序六排序好坏分析代码段运行结果 实验目的 1.能够清楚表述主要内部排序方法的设计思路。 2....
  • 前言 C语言中有三大程序结构:顺序结构、选择结构、循环结构,这三种结构在C语言程序中最为常见,也是处理复杂逻辑事物需要具备的处理结构。顺序结构简易顺序结构如下所示:顺序结构特点:顺序结构的执行为从上至下...
  • C语言的四种程序结构

    万次阅读 多人点赞 2018-01-02 12:13:59
    a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第个杯子,假如第个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3。如果改变其顺序,写成:a = ...
  • 数据结构与算法常见笔试题

    万次阅读 多人点赞 2017-09-10 11:03:57
    1.数据结构与算法常见笔试题 ...2.算法的基本要素:算法中对数据的运算和操作、算法的控制结构。 3.算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 4.算法设计的要求:正确性、可读性
  • 第二节 操作系统的体系结构 目前流行的操作系统有Windows操作系统、UNIX操作系统、Linux操作系统和Android操作系统等。 一、Windows操作系统的体系结构 Windows体系结构是分层的模块系统,主要层次有硬件抽象层...
  • 循环结构哪两

    2021-05-24 01:42:14
    循环程序有哪两基本结构?...循环控制部分——程序执行的控制转移.do……while :先循环,在判断 while :先判断后循环 for:一般可以代替上面两个循环结构分为哪两,分别是什么?请举例说明。C语...
  • 流程控制是指在程序运行时对指令运行顺序的控制 通常程序流程结构分为三种顺序结构分支结构和循环结构顺序结构程序中最常见流程结构按照程序中语句的先后顺序自上而下依次执行称为顺序结构分支结构则根据if条件...
  • 一、Python程序控制结构 顺序结构 分支结构(单分支、二分支及紧凑形式、多分支) 循环结构(遍历循环、无限循环) 对比一下,分支结构是根据条件结果向程序运行前方跳转的结构;循环结构是根据条件向程序运行...
  • 常见流程控制语句

    千次阅读 2017-09-11 22:13:41
    程序三种常见结构:顺序结构 – 代码从上到下,顺序执行。代码默认就是顺序结构。 选择结构 – 代码按照条件选择一个分支执行,条件的结果决定了执行哪段代码。 循环结构 – 代码按照条件反复多次执行,直到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 434,427
精华内容 173,770
热门标签
关键字:

常见的三种流程控制结构