精华内容
下载资源
问答
  • 之前对于使用多层嵌套for循环,一直以为只是对代码可读性和逻辑梳理有影响。可能对性能也有影响,但是一直不知道对性能影响在哪。最近在看虚拟机方面的书,感觉有一个点应该算多层嵌套for循环对jvm有影响,特此记录...

    在开发中,一直强调代码的整洁和可读性。之前对于使用多层嵌套for循环,一直以为只是对代码可读性和逻辑梳理有影响。可能对性能也有影响,但是一直不知道对性能影响在哪。最近在看虚拟机方面的书,感觉有一个点应该算多层嵌套for循环对jvm有影响,特此记录下来。欢迎大家学习指正。

    言归正传,Java程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别复杂时,就会把这个代码认定为“热点代码”(Hot Spot Code)。为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器成为即时编译器(JIT编译器)。

    在运行过程中,会被即时编译器编译的“热点代码”有两类,即:(1)被多次调用的方法 (2)被多次执行的循环体

    前者好理解,一个方法被调用的次数多了;后者则是为了解决一个方法只被调用一次或少量几次,但是方法体内部存在循环次数较多的问题,这样循环体的代码也被执行多次。一个方法中的多层嵌套for循环就属于后者。对于第一种情况,由于是方法调用触发的编译,因此编译器理所当然会将整个方法作为编译对象。但是后者,尽管只是方法内的循环体所触发,但是编译器仍然会以整个方法作为编译对象。

    PS:个人有个理解,我们的安卓系统手机,越来越卡,会不会就是因为虚拟机的这个即时编译器,把好多代码编译成机器码保存在本地导致的手机内存越来越少?如有知道的,望指正一下,共同学习

    展开全文
  • 循环嵌套使用案例 案例1.打印五行小星星 row = 1 while row # 每一行要打印的小星星数量和当前行数是一样的 # 增加一个小循环,专门负责当前行中,每一列的小星星输出 col = 1 while col print("*", end=...

    if判断

    判断的定义
    如果条件满足,就做一件事;条件不满足,就做另一件事;
    判断语句又被称为分支语句,有判断,才有分支;

    if判断语句基本语法

    if语句格式:

    if 判断的条件:
        条件成立后做的事
        ...
    ...

    代码缩进为一个tab键,或者四个空格,官方建议使用空格;但应注意,在python开发中,tab和空格不能混用!

    判断年龄示例:

    # 判断是否成年,成年则可以进网吧
    age = 19
    if age>=18:
        print("你满了18岁,可以进网吧")

    if及其缩进代码可以看成一个完整的代码块

    比较运算符简介

    运算符描述
    ==比较两个操作数的值是否相等,相等则返回True,否则返回False
    !=比较两个操作数的值是否不相等,不相等则返回True
    >=检查左操作数的值是否大于等于右操作数的值,成立则返回True
    <=检查右操作数的值是否大于等于左操作数的值,成立则返回True
    <检查右操作数的值是否大于左操作数的值,成立则返回True
    >检查左操作数的值是否大于右操作数的值,成立则返回True

    注意,在python2.x中,<>和!=作用和效果一样;但在python3中,已经取消了<>这个比较符号。

    else语句

    if只能够用来 当条件满足时做某事,而else则用来当条件不满足时做另外的事。

    else语法格式:

    if 判断的条件:
        条件成立后应该做的事
    else:
        条件不成立时应该做的事

    判断年龄改进版

    age = 18
    if age>=18:
        print("已成年,可以进网吧")
        print("欢迎来到xxx网吧")
    else:
        print("未成年,请以后再来")
    print("慢走")  # 无论条件是否满足,都会执行

    控制台输入年龄示例

    age = int(input("请输入你的年龄:"))
    if age>=18:
        print("已成年,可以进网吧")
        print("欢迎来到xxx网吧")
    else:
        print("未成年,请以后再来")
    print("慢走")

    应注意的是,控制台输入的被python解释器认为是字符串,字符串不能与数字比较,应该现将从控制台输入的年龄转换成数字;

    if,else及其各自的缩进代码可以看成一个完整的代码块
    虽然他们并不能折叠成一个代码块,但其实就是,之所以各自折叠的原因是因为它们各自是局部代码;

    逻辑运算符

    逻辑运算符简介
    逻辑运算符的使用:当需要同时判断多个条件是否成立以执行后续的代码时
    与或非,与或是用来连接条件的,非不连接条件,是用来对条件取反的;

    and 与

    条件1 and 条件2

    必须两个条件同时满足,才是真,返回True;
    只要有一个条件不满足,就是假,返回False。

    or 或

    条件1 or 条件2

    两个条件只要有一个满足,就是真,返回True;
    只有两个条件都不满足,才是假,返回False。

    not 非

    not 条件

    非不连接条件,用来对条件取反;
    not使用场景:当希望 条件不满足时执行某件事情,可以用not;
    另外,如果是拼接复杂的逻辑计算时,也可能用到not。

    逻辑运算符使用示例

    示例1:

    # 逻辑判断年龄是否正确
    age = 40
    if age>=0 and age<=120:
        print("年龄正确")
    else:
        print("年龄错误")

    示例2:

    # not判断公司员工
    is_employee = False
    if not is_employee:
        print("非本公司员工,禁止入内")

    elif语句

    elif应用场景:希望判断多个条件,并且多个条件对应不同的处理方式时;
    elif中 同时判断多个条件,所有的条件是平级的。

    elif的语法:

    if 条件1:
        条件1满足时,就执行这里面的代码
    elif 条件2:
        条件2满足时,就执行这里面的代码
    elif 条件3:
        条件3满足时,就执行这里面的代码
    else:
        如果上述条件都不满足,就执行这里的代码

    elif应用示例

    # 判断是否为女友的节日并作出相应动作
    day = "birthday"
    
    if day == "birthday":
        print("buy cake")
    elif day = "Valentine's Day":
        print("buy rose")
    elif day = "Christmas Eve":
        print("eat apple")
    else:
        print("Everyday is her holiday!")

    if嵌套

    if嵌套的应用场景:用来判断多个有前后依赖的场景,在前一个条件满足的情况下,再额外增加条件判断时使用;

    if嵌套的语法:

    if 条件1:
        if 条件1.1:
            条件1.1满足时,就执行这里面的代码
        elif 条件1.2:
            条件1.2满足时,就执行这里面的代码
        else:
            如果上述条件都不满足,就执行这里的代码
    elif 条件2:
        条件2满足时,就执行这里面的代码
    elif 条件3:
        条件3满足时,就执行这里面的代码
    else:
        如果上述条件都不满足,就执行这里的代码

    火车站检票安检代码

    # 有火车票后进入安检环节,没有票就不允许进,安检环节如果满足条件就进入,不满足就进行提醒
    has_ticket = True
    knife_length = 30
    if has_ticket:
        print("检票完成,进入安检环节")
        if knife_length > 20:
            print("你携带的道具有 %d厘米,不符合规定,不允许上车!"%knife_length)
        else:
            print("安检成功,祝你旅途愉快")
    else:
        print("没有票,不允许进入,请先购票")

    所学综合应用

    # 开发一个剪刀石头布的人机对战游戏
    import random
    
    player = int(input("请选择你的出拳,只需输入数字:1.石头 2.剪刀 3.布))
    computer = random.randint(1,3)
    print("玩家选择的是%d,电脑选择的是%d"%(player, computer))
    if ((palyer == 1 and computer == 2) 
            or (palyer == 2 and computer == 3) 
            or (palyer == 3 and computer == 1)):
        print("恭喜你,你赢了")
    elif player == computer:
        print("平局,这么巧")
    else:
        print("不好意思,你输了")

    一行过长代码的换行
    原来:

    if (palyer == 1 and computer == 2) or (palyer == 2 and computer == 3) or (palyer == 3 and computer == 1):
        print("你赢了")

    换行:

    if ((palyer == 1 and computer == 2) 
            or (palyer == 2 and computer == 3) 
            or (palyer == 3 and computer == 1)):
        print("你赢了")

    while循环的基本使用

    程序的三大流程

    程序只有三个流程,顺序,分支,循环
    从上到下,顺序;
    条件判断,分支;
    特定代码重复执行,循环;

    while语句基本语法

    初始条件(例如 i=1)
    while 条件:(例如 i<=5)
        满足条件时做的事(xxx)
    
        处理条件(例如 i=i+1)
    循环结束后做的事(xxx)

    第一个while循环示例

    i =1
    while i<=5:
        print("hello python")
        i = i+1
    print("循环结束")

    注意,循环结束后,之前定义的计数器条件的数值依旧是存在的;

    死循环:没有对计数器进行处理,导致程序一直在循环部分执行,无法跳出;

    python中的赋值运算符

    i += 1 ---> i = i+1
    -=
    i /= 2 ---> i = i/2
    *=
    //=
    %=
    **=

    注意,赋值运算符之间不能有空格;

    程序计数从0开始

    自然计数法,从1开始,符合人的习惯
    程序计数法,从0开始,几乎所有的语言都是如此

    循环计算示例

    循环计算思路分析
    先在外面定义一个变量用来保存计算结果;
    每循环一次就更新一下变量的计算结果。

    示例1:

    # 0到100数字累加
    i = 0
    sun = 0
    while i <= 100:
        sum += i
        i += 1
    print("循环结束,0到100的求和结果是%d" % sum)

    示例2:

    # 偶数求和之计算结果
    i = 0
    sum = 0
    while i <= 100:
        if i%2 == 0:
            sum += i
        i += 1
    print("循环结束,0到100的求和结果是%d" % sum)

    break和continue

    break和continue的使用场景

    break和continue是专门在循环中使用的关键字
    break 某一条件满足时,退出循环,不再执行后续重复的代码
    continue 某一条件满足时,不执行后续的重复代码
    break和continue只对当前所在循环有效
    break打断整个循环
    continue打断一次小循环

    break代码演练

    i = 0
    while i<10:
        if i == 3:
            break
        print(i)
        i+=1

    continue代码演示

    i = 0
    while i<10:
        if i == 3:
            # 在循环中,使用continue之前,需确认循环的计数是否需要修改,否则很容易造成死循环。
            i += 1
            continue
        print(i)
        i+=1

    循环嵌套

    循环嵌套语法

    while 条件1:
        条件满足时,做的事...
    
        while 条件2:
            条件满足时,做的事...
    
            处理条件2
        处理条件1

    print函数end参数的作用

    默认情况下,print函数会在结尾自动增加换行;而用end参数的话,可以用end指定的内容替换换行,比如空格,就是调整print函数不换行;再比如end="---",就是在添加end的print输出语句和下一个输出语句之间不换行且添加---

    print("1")
    print("2")
    
    print("1", end="")
    print("2")
    
    print("1", end="---")
    print("2")

    循环嵌套使用案例

    案例1.打印五行小星星

    row = 1
    while row <= 5:
        # 每一行要打印的小星星数量和当前行数是一样的
        # 增加一个小循环,专门负责当前行中,每一列的小星星输出
        col = 1
        while col <= row:
            print("*", end="")
            col += 1
        print("")
        row += 1

    重点看其中的思路!

    案例2.九九乘法表案例

    row = 1
    while row <= 9:
        col = 1
        while col <= row:
            # print("*", end="")
            # print("9 * 9 = 81", end="  ")
            # print("9 * %d = 81" % row, end="  ")
            # print("%d * %d = %d" % (col, row, col*row), end="  ")
            print("%d * %d = %d" % (col, row, col*row), end="\t")  # 加\t的原因是,为了对齐美观
            col += 1
        print("")
        row += 1

    字符串中的转义字符

    转义字符描述
    \反斜杠符号
    '单引号
    "双引号
    \n换行
    \t横向制表符
    \r回车

    t在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐;
    制表符的作用是在不适用表格的情况下在垂直方向按列对齐文本;
    \n在控制台输出一个换行符。

    print("1 2 3")
    print("10 20 30")
    # \t在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐,制表符的作用是在不适用表格的情况下在垂直方向按列对齐文本
    print("1\t2 \t3")
    print("10\t20\t30")
    # \n在控制台输出一个换行符
    print("hello\nworld")
    print("hello\"world")
    
    # 输出
    1 2 3
    10 20 30
    1   2   3
    10  20  30
    hello
    world
    hello"world

    转载于:https://www.cnblogs.com/yifchan/p/python-1-3.html

    展开全文
  • i += 1 continue print(i) i+=1 循环嵌套 循环嵌套语法 while 条件1: 条件满足时,做的事... while 条件2: 条件满足时,做的事... 处理条件2 处理条件1 print函数end参数的作用 默认情况下,print函数会在结尾...

    if判断

    判断的定义

    如果条件满足,就做一件事;条件不满足,就做另一件事;

    判断语句又被称为分支语句,有判断,才有分支;

    if判断语句基本语法

    if语句格式:

    if 判断的条件:

    条件成立后做的事

    ...

    ...

    代码缩进为一个tab键,或者四个空格,官方建议使用空格;但应注意,在python开发中,tab和空格不能混用!

    判断年龄示例:

    # 判断是否成年,成年则可以进网吧

    age = 19

    if age>=18:

    print("你满了18岁,可以进网吧")

    if及其缩进代码可以看成一个完整的代码块

    比较运算符简介

    运算符

    描述

    ==

    比较两个操作数的值是否相等,相等则返回True,否则返回False

    !=

    比较两个操作数的值是否不相等,不相等则返回True

    >=

    检查左操作数的值是否大于等于右操作数的值,成立则返回True

    <=

    检查右操作数的值是否大于等于左操作数的值,成立则返回True

    <

    检查右操作数的值是否大于左操作数的值,成立则返回True

    >

    检查左操作数的值是否大于右操作数的值,成立则返回True

    注意,在python2.x中,<>和!=作用和效果一样;但在python3中,已经取消了<>这个比较符号。

    else语句

    if只能够用来 当条件满足时做某事,而else则用来当条件不满足时做另外的事。

    else语法格式:

    if 判断的条件:

    条件成立后应该做的事

    else:

    条件不成立时应该做的事

    判断年龄改进版

    age = 18

    if age>=18:

    print("已成年,可以进网吧")

    print("欢迎来到xxx网吧")

    else:

    print("未成年,请以后再来")

    print("慢走") # 无论条件是否满足,都会执行

    控制台输入年龄示例

    age = int(input("请输入你的年龄:"))

    if age>=18:

    print("已成年,可以进网吧")

    print("欢迎来到xxx网吧")

    else:

    print("未成年,请以后再来")

    print("慢走")

    应注意的是,控制台输入的被python解释器认为是字符串,字符串不能与数字比较,应该现将从控制台输入的年龄转换成数字;

    if,else及其各自的缩进代码可以看成一个完整的代码块;

    虽然他们并不能折叠成一个代码块,但其实就是,之所以各自折叠的原因是因为它们各自是局部代码;

    逻辑运算符

    逻辑运算符简介

    逻辑运算符的使用:当需要同时判断多个条件是否成立以执行后续的代码时

    与或非,与或是用来连接条件的,非不连接条件,是用来对条件取反的;

    and 与

    条件1 and 条件2

    必须两个条件同时满足,才是真,返回True;

    只要有一个条件不满足,就是假,返回False。

    or 或

    条件1 or 条件2

    两个条件只要有一个满足,就是真,返回True;

    只有两个条件都不满足,才是假,返回False。

    not 非

    not 条件

    非不连接条件,用来对条件取反;

    not使用场景:当希望 条件不满足时执行某件事情,可以用not;

    另外,如果是拼接复杂的逻辑计算时,也可能用到not。

    逻辑运算符使用示例

    示例1:

    # 逻辑判断年龄是否正确

    age = 40

    if age>=0 and age<=120:

    print("年龄正确")

    else:

    print("年龄错误")

    示例2:

    # not判断公司员工

    is_employee = False

    if not is_employee:

    print("非本公司员工,禁止入内")

    elif语句

    elif应用场景:希望判断多个条件,并且多个条件对应不同的处理方式时;

    elif中 同时判断多个条件,所有的条件是平级的。

    elif的语法:

    if 条件1:

    条件1满足时,就执行这里面的代码

    elif 条件2:

    条件2满足时,就执行这里面的代码

    elif 条件3:

    条件3满足时,就执行这里面的代码

    else:

    如果上述条件都不满足,就执行这里的代码

    elif应用示例

    # 判断是否为女友的节日并作出相应动作

    day = "birthday"

    if day == "birthday":

    print("buy cake")

    elif day = "Valentine's Day":

    print("buy rose")

    elif day = "Christmas Eve":

    print("eat apple")

    else:

    print("Everyday is her holiday!")

    if嵌套

    if嵌套的应用场景:用来判断多个有前后依赖的场景,在前一个条件满足的情况下,再额外增加条件判断时使用;

    if嵌套的语法:

    if 条件1:

    if 条件1.1:

    条件1.1满足时,就执行这里面的代码

    elif 条件1.2:

    条件1.2满足时,就执行这里面的代码

    else:

    如果上述条件都不满足,就执行这里的代码

    elif 条件2:

    条件2满足时,就执行这里面的代码

    elif 条件3:

    条件3满足时,就执行这里面的代码

    else:

    如果上述条件都不满足,就执行这里的代码

    火车站检票安检代码

    # 有火车票后进入安检环节,没有票就不允许进,安检环节如果满足条件就进入,不满足就进行提醒

    has_ticket = True

    knife_length = 30

    if has_ticket:

    print("检票完成,进入安检环节")

    if knife_length > 20:

    print("你携带的道具有 %d厘米,不符合规定,不允许上车!"%knife_length)

    else:

    print("安检成功,祝你旅途愉快")

    else:

    print("没有票,不允许进入,请先购票")

    所学综合应用

    # 开发一个剪刀石头布的人机对战游戏

    import random

    player = int(input("请选择你的出拳,只需输入数字:1.石头 2.剪刀 3.布))

    computer = random.randint(1,3)

    print("玩家选择的是%d,电脑选择的是%d"%(player, computer))

    if ((palyer == 1 and computer == 2)

    or (palyer == 2 and computer == 3)

    or (palyer == 3 and computer == 1)):

    print("恭喜你,你赢了")

    elif player == computer:

    print("平局,这么巧")

    else:

    print("不好意思,你输了")

    一行过长代码的换行

    原来:

    if (palyer == 1 and computer == 2) or (palyer == 2 and computer == 3) or (palyer == 3 and computer == 1):

    print("你赢了")

    换行:

    if ((palyer == 1 and computer == 2)

    or (palyer == 2 and computer == 3)

    or (palyer == 3 and computer == 1)):

    print("你赢了")

    while循环的基本使用

    程序的三大流程

    程序只有三个流程,顺序,分支,循环

    从上到下,顺序;

    条件判断,分支;

    特定代码重复执行,循环;

    while语句基本语法

    初始条件(例如 i=1)

    while 条件:(例如 i<=5)

    满足条件时做的事(xxx)

    处理条件(例如 i=i+1)

    循环结束后做的事(xxx)

    第一个while循环示例

    i =1

    while i<=5:

    print("hello python")

    i = i+1

    print("循环结束")

    注意,循环结束后,之前定义的计数器条件的数值依旧是存在的;

    死循环:没有对计数器进行处理,导致程序一直在循环部分执行,无法跳出;

    python中的赋值运算符

    i += 1 ---> i = i+1

    -=

    i /= 2 ---> i = i/2

    *=

    //=

    %=

    **=

    注意,赋值运算符之间不能有空格;

    程序计数从0开始

    自然计数法,从1开始,符合人的习惯

    程序计数法,从0开始,几乎所有的语言都是如此

    循环计算示例

    循环计算思路分析

    先在外面定义一个变量用来保存计算结果;

    每循环一次就更新一下变量的计算结果。

    示例1:

    # 0到100数字累加

    i = 0

    sun = 0

    while i <= 100:

    sum += i

    i += 1

    print("循环结束,0到100的求和结果是%d" % sum)

    示例2:

    # 偶数求和之计算结果

    i = 0

    sum = 0

    while i <= 100:

    if i%2 == 0:

    sum += i

    i += 1

    print("循环结束,0到100的求和结果是%d" % sum)

    break和continue

    break和continue的使用场景

    break和continue是专门在循环中使用的关键字

    break 某一条件满足时,退出循环,不再执行后续重复的代码

    continue 某一条件满足时,不执行后续的重复代码

    break和continue只对当前所在循环有效

    break打断整个循环

    continue打断一次小循环

    break代码演练

    i = 0

    while i<10:

    if i == 3:

    break

    print(i)

    i+=1

    continue代码演示

    i = 0

    while i<10:

    if i == 3:

    # 在循环中,使用continue之前,需确认循环的计数是否需要修改,否则很容易造成死循环。

    i += 1

    continue

    print(i)

    i+=1

    循环嵌套

    循环嵌套语法

    while 条件1:

    条件满足时,做的事...

    while 条件2:

    条件满足时,做的事...

    处理条件2

    处理条件1

    print函数end参数的作用

    默认情况下,print函数会在结尾自动增加换行;而用end参数的话,可以用end指定的内容替换换行,比如空格,就是调整print函数不换行;再比如end="---",就是在添加end的print输出语句和下一个输出语句之间不换行且添加---

    print("1")

    print("2")

    print("1", end="")

    print("2")

    print("1", end="---")

    print("2")

    循环嵌套使用案例

    案例1.打印五行小星星

    row = 1

    while row <= 5:

    # 每一行要打印的小星星数量和当前行数是一样的

    # 增加一个小循环,专门负责当前行中,每一列的小星星输出

    col = 1

    while col <= row:

    print("*", end="")

    col += 1

    print("")

    row += 1

    重点看其中的思路!

    案例2.九九乘法表案例

    row = 1

    while row <= 9:

    col = 1

    while col <= row:

    # print("*", end="")

    # print("9 * 9 = 81", end=" ")

    # print("9 * %d = 81" % row, end=" ")

    # print("%d * %d = %d" % (col, row, col*row), end=" ")

    print("%d * %d = %d" % (col, row, col*row), end="\t") # 加\t的原因是,为了对齐美观

    col += 1

    print("")

    row += 1

    字符串中的转义字符

    转义字符

    描述

    \

    反斜杠符号

    '

    单引号

    "

    双引号

    \n

    换行

    \t

    横向制表符

    \r

    回车

    t在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐;

    制表符的作用是在不适用表格的情况下在垂直方向按列对齐文本;

    \n在控制台输出一个换行符。

    print("1 2 3")

    print("10 20 30")

    # \t在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐,制表符的作用是在不适用表格的情况下在垂直方向按列对齐文本

    print("1\t2 \t3")

    print("10\t20\t30")

    # \n在控制台输出一个换行符

    print("hello\nworld")

    print("hello\"world")

    # 输出

    1 2 3

    10 20 30

    1 2 3

    10 20 30

    hello

    world

    hello"world

    总结

    以上所述是小编给大家介绍的Python基础教程之if判断,while循环,循环嵌套,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    展开全文
  • C语言总结(语句、程序设计、循环嵌套

    千次阅读 多人点赞 2019-01-22 17:24:04
    程序流程设计C语句概述选择型程序设计if语句(条件选择语句)if语句的三种形式:语句嵌套switch语句(开关分支语句)循环型程序设计C语言可实现循环的语句:goto语句while语句do~while语句for语句循环嵌套辅助控制...

    第五、六章,程序流程设计

    C语句概述

    • C语句: 以“;”作分隔符,编译后产生机器指令。
    • C语句分类:

    (1)、操作运算语句: 即表达式语句,表达式加分号构成。

    • 赋值语句
    • 函数调用语句
    • 空语句:;
    • 复合表达式语句:即逗号表达式语句

    (2)、程序控制语句(9种):
    在这里插入图片描述
    (3)、复合语句: 用 {…}括起来的一组语句

    • 一般形式:
      {
      [数据说明部分;]
      执行语句部分;
      }

    说明:

    • “}”后不加分号
    • 语法上和单一语句相同
    • 复合语句可嵌套
    • 复合语句又称分程序

    选择型程序设计

    if语句(条件选择语句)

    if语句的三种形式:

    形式一:

    • 格式:
      在这里插入图片描述
    • 执行过程:
      在这里插入图片描述

    形式二:

    • 格式:
      在这里插入图片描述

    • 执行过程:
      在这里插入图片描述

    形式三:

    • 格式:
      在这里插入图片描述
    • 执行过程:
      在这里插入图片描述

    语句嵌套

    一般形式:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    if ~ else 配对原则:缺省{ }时,else总是和它上面离它最近的未配对的if配对。
    在这里插入图片描述
    实现if ~ else 正确配对方法:加{ }

    例 :if….else的配对

    #include <stdio.h>
    main()
    {   int x,a=1,b=3,c=5,d=4;
        if(a<b)
        if(c<d) x=1;
        else
        if(a<c)
        if(b<d) x=2;
        else x=3;
        else x=6;
        else x=7;
        printf(“x=%d\n”,x);
    }
    
    

    运行:x=2

    规范的程序书写格式如下:

    #include <stdio.h>
    main()
    {   int x,a=1,b=3,c=5,d=4;
        if(a<b)
            if(c<d) x=1;
            else
                if(a<c)
                    if(b<d) x=2;
                    else x=3;
                else x=6;
        else x=7;
        printf(“x=%d\n”,x);
    }
    

    流程图:
    在这里插入图片描述

    switch语句(开关分支语句)

    一般形式:
    在这里插入图片描述
    执行过程:
    在这里插入图片描述
    说明:

    • E1,E2,…En是常量表达式,且值必须互不相同
    • 语句标号作用,必须用break跳出
    • case后可包含多个可执行语句,且不必加{ }
    • switch可嵌套
    • 多个case可共用一组执行语句

    示例: 以下程序当输入:2473 时,程序执行结果为何?

    #include <stdio.h>
    main()
    {   int c;
        while((c=getchar())!=‘\n’)
           switch(c-2)
             {  case 0:
                 case 1:  putchar(c+4);
                 case 2:  putchar(c+4); break;
                 case 3:  putchar(c+3); 
                 default : putchar(c+2); break;
             }
         printf(“\n”);
    }
    
    输入:2473 回车确认
    输出:668977
    

    循环型程序设计

    C语言可实现循环的语句:

    • 用goto 和 if 构成循环
    • while 语句
    • do ~ while 语句
    • for 语句

    goto语句

    goto语句一般格式:
    在这里插入图片描述

    功能: 无条件转移语句

    说明:
    (1)、不能用整数作标号
    (2)、只能出现在goto所在函数内,且唯一
    (3)、只能加在可执行语句前面
    (4)、限制使用goto语句

    while语句

    一般形式:
    在这里插入图片描述
    执行流程:
    在这里插入图片描述

    特点: 先判断表达式,后执行循环体

    说明:
    (1)、循环体有可能一次也不执行
    (2)、循环体可为任意类型语句
    (3)、循环体如果包含一个以上的语句,应该以复合语句的形式出现
    (4)、在循环体内应该有使循环趋向于结束的语句
    (5)、下列情况,退出while循环

    • 条件表达式不成立(为零)
    • 循环体内遇break,return,goto

    (6)、无限循环: while(1) 循环体;

    示例:

    #include <stdio.h>
    main()
    {   int i=0;
        while(i++<=1)
            printf(*%d\n",i);
            printf(**%d\n”,i);
     }
     
    运行结果:
    *1
    *2
    **3
    

    do~while语句

    一般形式:
    在这里插入图片描述

    执行流程:
    在这里插入图片描述

    特点: 先执行循环体,后判断表达式

    说明:
    (1)、至少执行一次循环体
    (2)、do~while可转化成while结构
    在这里插入图片描述
    例 while和do~while比较:

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

    for语句

    一般形式:
    在这里插入图片描述

    执行流程:
    在这里插入图片描述
    一般形式:
    在这里插入图片描述

    说明:

    • for语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可省
    • 无限循环: for( ;; )
    • for语句可以转换成while结构
      在这里插入图片描述

    例:同一结果的多种表达方式

    #include<stdio.h>
            main( )
            {    int i=0;
                  for(i=0;i<10;i++)
                        putchar(‘a’+i);
             }
    
    #include<stdio.h>
            main( )
            {    int i=0;
                  for(;i<10;i++)
                        putchar(‘a’+i);
             }
    
    #include<stdio.h>
            main( )
            {    int i=0;
                  for(;i<10;)
                        putchar(‘a’+(i++));
             }
    
    #include<stdio.h>
            main( )
            {    int i=0;
                  for(;i<10;putchar(‘a’+i),i++)
                      ;
             }
    

    在这里插入图片描述

    循环的嵌套

    • 三种循环可互相嵌套,层数不限
    • 外层循环可包含两个以上内循环,但不能相互交叉
    • 嵌套循环的执行流程
      /*流程1*/
      while()
           {    ……
                  while()
                  {   ……
                  }...
           }
    
      /*流程2*/
           do
           {    ……
                  do
                  {   ……
                  }while( );...
           }while( );
    
      /*流程3*/
         while()
           {    ……
                  do
                  {   ……
                  }while( );
           …….
           }
    
    /*流程4*/
      for( ; ;)  /*外循环*/
           {    ……
                  do  /*内循环*/
                  {   ……
                  }while();
              ……
                while() /*内循环*/
                  {   ……
                  }...
    }
    
    
    • 嵌套循环的跳转

    禁止:从外层跳入内层
    跳入同层的另一循环向上跳转

    示例:循环嵌套,输出九九表
    在这里插入图片描述

    #include <stdio.h>
    main()
    {   int i,j;
        for(i=1;i<10;i++)
           printf("%4d",i);
        printf("\n---------------------------------------\n");
        for(i=1;i<10;i++)
           for(j=1;j<10;j++)
    	   printf((j==9)?"%4d\n":"%4d",i*j);
    }
    

    辅助控制语句

    break语句

    功能: 在循环语句和switch语句中,终止并跳出循环体或开关体。

    说明:
    (1)、break只能终止并跳出最近一层的结构
    (2)、break不能用于循环语句和switch语句之外的任何其它语句之中

    结构流程:
    在这里插入图片描述

    在这里插入图片描述

    continue语句

    功能: 结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。仅用于循环语句中。

    结构流程:
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    举例

    示例1:求输入的十个整数中正数的个数及其平均值

    /*示例1*/
    #include <stdio.h>
    main()
    {    int i,num=0,a;
         float sum=0;
         for(i=0;i<10;i++)
         {  scanf("%d",&a);
    	if(a<=0)  continue;
    	num++;
    	sum+=a;
         }
         printf("%d plus integer's sum :%6.0f\n",num,sum);
         printf("Mean value:%6.2f\n",sum/num);
    }
    

    示例2:求Fibonacci数列:1,1,2,3,5,8,……的前40个数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    /*示例2*/
    #include <stdio.h>
    main()
    {    long int f1,f2;
         int i;
         f1=1;  f2=1;
         for(i=1;i<=20;i++)
         {   printf("%12ld  %12ld  ",f1,f2);
    	 if(i%2==0)  printf("\n");
    	 f1=f1+f2;
    	 f2=f2+f1;
         }
    }
    

    示例3:判断m是否素数
    在这里插入图片描述

    /*示例3*/
    #include <stdio.h>
    #include <math.h>
    main()
    {   int m,i,k;
        scanf("%d",&m);
        k=sqrt(m);
        for(i=2;i<=k;i++)
          if(m%i==0)  break;
        if(i>=k+1)  printf("%d is a prime number\n",m);
        else   printf("%d is not a prime number\n",m);
    }
    

    示例4:打印100以内个位数为6且能被3整除的所有数。

    #include<stdio.h>
        main ( )     
         { int i,j;
                for (i=0; i<10; i++)
                {  j=i*10+6;
                   if  (j%3!=0)  continue;
                   printf(%d   ”,j);
                 }  
           } 
    
    展开全文
  • [原创][本菜小体会]让For多层循环嵌套永远不再困扰新手小体会题目:让For多层循环嵌套永远不再困扰新手小体会关键词:多个循环嵌套形如一个小闹钟问题的重要性:对于像本菜一样的鸟儿们,在刚开始接触一个vba程序中...
  • 格式不要括号,最后有endfor 循环变量 = 表达式1:表 2:表 3表1:初值 表2:步长 表3:终值求圆周率:π/4=1 - 1/3 + 1/5 -1/7+...+(-1)^(n+1)*(1/2*n-1)y = 0;g = -1;n = input('n = ?');for 1:ng = -g;y = y + g ...
  • 有两个数组authA和authB authA如下 ...正确的循环代码是   若是把vv改成authB,则会出现bug 换成其他非authB则不会出现问题   转载于:https://www.cnblogs.com/lwn007/p/6562027.html
  • K/3 Cloud的代码开发规范,严格禁止循环中到数据库读取数据,这会引发严重的性能问题: 需在循环外,一次性取回需要的数据。 但对于提前取回的数据,如果没有预先处理,常常需要嵌套一个循环到集合中取数,这...
  • JavaScript递归理解 函数自己调用自己。 递归中有调用结束的条件,当达到调用结束的条件后,会在一层一层向上返回。 循环和递归的区别 Js递归调用方法 Js递归调用例子
  • 1、ViewPager中嵌套3个View,当从View1滑动到View2时禁止ViewPager的滑动事件。 2、通过View2底部改变页面的布局实现滑动到View1和View3. 3、View2内嵌的View中还存在一个可以左右滑动的View,在其上添加了手势,即...
  • idea编译时出现class嵌套的问题,主要原因是几个输出目录设置为相同时就会出现这种情况,解决办法如下,三个位置设置不同的目录,如下
  • 循环语句 前言:循环语句在c语言中的重要性不言而喻,由编译器重复执行着相同的一段代码从而为我们展现我们所需要的内容或者重复赋值等,是基本之一以下是c语言中典型的循环语句以及其特点,若有缺少、错误欢迎您的...
  • 常用嵌套页面方法 1.iframe  2.object ” 常用防止页面嵌套的方法
  • 05 if结构While、For循环

    2021-05-20 09:52:58
    每取一个值,执行一次一次循环体(序列中元素的个数决定了循环体执行的次数) for char in 'abc' : print('===') # 结果为=== # === # === print(char) # 结果为=== # a # === # b # === # c """ 释义: 第一次循环...
  • if嵌套(补充) if 要判断的条件: 条件成立时,要做的事情 elif 条件2: ... else: 条件不成立时,要做的时请 elif和else都必须和if联合使用,不能单独使用 例1: holiday_name = str(input('请输入一...
  • 避免在for循环中使用sql语句

    千次阅读 2021-04-30 11:26:52
    for循环中使用sql语句 最简单的一种方式就是for循环中使用sql语句。根据关联字段查出对应的数据。 优点: 实现简单快速,在2个表都有基本Mapper的情况下,不用新增任何基础类,直接可以拼凑逻辑。 缺点: 整个接口...
  • )DB2 数据库管理程序用锁来禁止事务访问其他事务写入的未... 文章 ghost丶桃子 2016-05-24 2608浏览量 【译】Berkeley DB 设计经验 英文原文链接:http://www.aosabook.org/en/bdb.html 中文翻译连接:...
  • MySQL查询优化之六-Join嵌套优化(Nested Join Optimization) 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:12951803 环境: MySQL版本:5.5.15 操作系统:windows 本文讨论Join嵌套...
  • Oracle从较小结果集(驱动表/外部表)中读取一行,然后和较大结果集(被探查表/内部表)中的所有数据逐条进行比较(嵌套循环可以用于非等值连接),如果符合规则,就放入结果集中,然后取较小结果集的下一条数据继续进行...
  • 回想一下嵌套循环连接执行查询的算法(参见第8.2.1.6节“嵌套循环连接算法”)。假设3个表T1,T2,T3中的连接查询具有此形式: SELECT * FROM T1 INNER JOIN T2 ON P1(T1,T2) INNER JOIN T3 ON P2(T2,T3) WHERE P(T1...
  • h5页面嵌套在安卓或IOS中的坑最近由于原生app开发太忙,整个商户一块用h5页面来做,之后嵌套在app里面,在这个过程中,碰到一些之前没有遇到的坑,做个记录,下次防坑。 1、弹出模态框,底部内容禁止滑动。一开始...
  • 7-1 求1!+3!+5!+……+n! (10 分)

    千次阅读 2019-10-31 23:45:19
    的和,要求用循环嵌套设计,n<12。 输入格式: 输入在一行中给出一个不超过12的正整数n。 输出格式: 在一行中按照格式“n=n值,s=阶乘和”的顺序输出,其中阶乘和是正整数。 输入样例: 5 输出样例: n=5,s=127 #...
  • jQuery each 跳出循环后不再往下执行

    千次阅读 2018-12-13 17:32:51
    使用 js each循环return false,并没有结束所有循环。。。 jQuery(':checkbox[name="prd_itm[]"]:checked').each(function(){ if(jQuery(this).closest('tr').find('input[name="pr...
  • java – 检测循环引用

    2021-03-09 17:33:37
    所以在一次采访中,我实际上被问到一个类似这样的简单问题,说我有一个嵌套的JSON响应,[a,b,c,d [a,[b,[d,e],g],h ].我被要求实现一个基本上可以处理来存储这些数据的类和一个打印方法,所以这就是我所拥有的:public ...
  • list嵌套需要注意的问题

    千次阅读 2017-08-08 18:01:57
    list嵌套需要注意的问题 原因:很多用户在做list嵌套的时候,由于一些细节配置的原因不明白,导致运行不成功!下面我说下list嵌套中需要注意的点 解决方案: 1.第二层的list组件需要设置filter属性,表示根据第...
  • CoordinatorLayout中的嵌套滑动和Behavior

    千次阅读 2017-01-14 22:18:56
    通过嵌套滑动机制,RecyclerView能够把自身接受到的点击滑动事件传递给父布局CoordinatorLayout,然后CoordinatorLayout把接收到的事件传递给子布局AppBarLayout(Toolbar的父布局),最终滑动事件交给了...
  • ajax由于他的异步特性 在第一次请求中的循环嵌套第二个ajax会数据会读不出来第一种描述:如果条件许可,把两次请求都放在服务端处理掉一起发回来,这些就在客户端只有一次ajax了优点:代码放在服务端,安全性比较,且...
  • C语言程序设计期末考试样卷A卷 „ „ __ „ __ ... _ „ _ 核分人 题分 85 15 B、 循环嵌套跳转时,禁止从外层跳入内层。 _ „ __ 答 复查人 得分 C、 外层循环可以包含两个以上内循环,彼此之间可以相互交叉。 _ __ „
  • VisualStudio开发过程中碰到C1061报错,查了MSDN,文档说明如下从说明中我们明白这是由于我们的代码块嵌套太深,超过了编译器的限制。但我理解为应该是同一个域内块的数量太多,超过了编译器限制。示例代码如下:...
  • 嵌套触发器

    千次阅读 2012-07-18 19:36:52
    如果一个触发器在执行操作时引发了另一个触发器,而这个触发器又接着引发下一个触发器,那么这些触发器就是嵌套触发器。 实例:  --创建存储过程:实现在新员工信息表(NewEmployee)中删除信息时触发员工信息表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,355
精华内容 10,942
关键字:

循环嵌套禁止