精华内容
下载资源
问答
  • while和for哪个快
    千次阅读
    2018-11-21 12:15:53

    debug版本:

    do

    {

    sum++;

    01321471 mov eax,dword ptr [sum]

    01321474 add eax,1

    01321477 mov dword ptr [sum],eax

    } while (sum < a);

    0132147A mov eax,dword ptr [sum]

    0132147D cmp eax,dword ptr [a]

    01321480 jl main+51h (01321471h)

     

    do_begin

    执行循环体

    ;影响标记位的指令

    jxx do_begin

     

    while (sum < a)

    00BF1471 mov eax,dword ptr [sum]

    00BF1474 cmp eax,dword ptr [a]

    00BF1477 jge main+64h (0BF1484h)

    {

    sum++;

    00BF1479 mov eax,dword ptr [sum]

    00BF147C add eax,1

    00BF147F mov dword ptr [sum],eax

    }

    00BF1482 jmp main+51h (0BF1471h)

    while_begin

    ;jxx 影响标志位的指令

    执行循环体

    jmp while_begin

    while_end

     

    for (int sum = 0; sum < a; sum++)

    //计数器初始化

    0039146A mov dword ptr [ebp-18h],0

    //步长

    00391471 jmp main+5Ch (039147Ch)

    00391473 mov eax,dword ptr [ebp-18h]

    00391476 add eax,1

    00391479 mov dword ptr [ebp-18h],eax

    //判断执行条件

    0039147C mov eax,dword ptr [ebp-18h]

    0039147F cmp eax,dword ptr [a]

    00391482 jge main+7Dh (039149Dh)

    //执行循环体

    {

    printf("hehhe");

    00391484 mov esi,esp

    00391486 push 39585Ch

    0039148B call dword ptr ds:[399114h]

    00391491 add esp,4

    00391494 cmp esi,esp

    00391496 call __RTC_CheckEsp (0391140h)

    }

    0039149B jmp main+53h (0391473h)

     

    从中可以看出debug版本do...while的效率要比while的效率高,而while的效率要比for循环高

     

    编译器在进行优化时,是将while循环和for循环转化为do...while循环

    while循环的优化

    if(XXX)

    {

    do

    {

    do something

    }while(XXX)

    }

    for循环的优化

    for(int i = 0; XXX; ++I)

    {

    do something

    }

     

    int i = 0;

    while(XXX)

    {

    do something

    ++i

    }

     

     

    int i = 0

    if(XXX)

    {

    do

    {

    do something

    ++i

    }while(XXX);

    }

    更多相关内容
  • for循环和while循环哪个效率更高

    千次阅读 2021-06-25 14:56:25
    实践如下,我们来写一个1亿的次的循环,在执行for和while循环之前打印一下时间,然后相减来得出结论。 public static void main(String[] args) { // 获取当前的毫秒值 long millis = System.currentTimeMillis();...

    for循环和while循环哪个效率更高?

    有人说while循环效率更高,有人说for循环的效率更高,今天我们就用事实分析一下哪个效率高?

    实践如下,我们来写一个1亿的次的循环,在执行for和while循环之前打印一下时间,然后相减来得出结论。

    public static void main(String[] args) {
        // 获取当前的毫秒值
        long millis = System.currentTimeMillis();
        System.out.println(millis);
        Integer count = 0;
        Student student = null;
        for (int i = 0; i < 100000000; i++) {
            student = new Student();
            student.setCount(i++);
            count++;
        }
        // 获取执行前和执行后的相差值
        System.out.println(System.currentTimeMillis() - millis+"==============时间");
    }
    
    
        public static void main(String[] args) {
            long millis = System.currentTimeMillis();
            System.out.println(millis);
            Integer count = 0;
            Student student = null;
            int i = 0;
            while (i<100000000){
                student = new Student();
                student.setCount(i++);
                count++;
            }
            System.out.println(System.currentTimeMillis() - millis+"==============时间");
        }
    

    得到for循环的运行结果:
    在这里插入图片描述

    得到while循环的运行结果:
    在这里插入图片描述

    可以看出相差还是很大的,差不多就多了一倍的时间,由此可得出结论,for循环效率更高;

    ###如有违规,请联系删除

    展开全文
  • 三、嵌套while和for循环

    千次阅读 2019-08-07 22:23:00
    一、嵌套while循环 while循环体中再套while循环,就叫做嵌套while循环 # 嵌套while循环格式: """ 计数器1 while条件表达式1: ...代码一... 计数器2 while条件表达式1: ...循环体... 改变计数器2的值 改变...

    一、嵌套while循环

    while循环体中再套while循环,就叫做嵌套while循环

    # 嵌套while循环格式:
    """
    计数器1
    while条件表达式1:
        ...代码一...
        计数器2
        while条件表达式1:
            ...循环体...
            改变计数器2的值
    
        改变计数器1的值
    """
    
    当条件表达式1成立的时候,执行循环体,然后判断条件表达式2是否成立,如果成立则执行嵌套中的while 循环,直到条件表达式2不成立了后再执行改变计数器 1的值,然后再判断条件表达式1是否成立。往复执行上面的流程。
    
    例:
    # 打印乘法口诀表
    
    i = 1
    while i <= 9:
        j = 1
        while j <= i:
            print("{}x{}={}".format(j,i,i*j),end='\t')
            j += 1
        print()
        i += 1
    

    二、嵌套for循环

    # 嵌套for循环格式
    """
    for 临时变量1 in 可迭代内容1:
        for 临时变量2 in 可迭代内容2:
            ...代码...
    外层循环执行一次,内层循环执行一遍
    
    """
    
    
    # 例1:打印实心矩形
    
    for i in range(5):
        for j in range(5):
            print('*',end='')
        print()
    
    
    # 列2:打印空心矩形
    
    for i in range(5):
        for j in range(5):
            if i == 0 or i == 4 or j == 0 or j == 4:
                print('*',end='')
            else:
                print(' ',end='')
        print()
    
    展开全文
  • Python的While循环和for循环,python,while

    千次阅读 2021-01-14 17:41:32
    python其他语言一样,提供了非常多的关键字来支持for循环和while循环。下面整理一下:1.while循环1.1 while循环的基本格式while循环的基本格式如下:while 条件表达式 :条件满足,执行循环语句;不满足,则退出...

    循环结构是编程的三大结构之一。python和其他语言一样,提供了非常多的关键字来支持for循环和while循环。下面整理一下:

    1.while循环

    1.1 while循环的基本格式

    while循环的基本格式如下:

    while 条件表达式 :

    条件满足,执行循环语句;不满足,则退出循环

    1.2.while循环示例程序

    count = 0

    while (count<9):

    print(f'Now count is {count}')

    count += 1

    输出结果如下

    Now count is 0

    Now count is 1

    Now count is 2

    Now count is 3

    Now count is 4

    Now count is 5

    Now count is 6

    Now count is 7

    Now count is 8

    [Finished in 1.0s]

    2.for循环

    2.1. for循环基本格式

    for变量 in 序列 :

    循环语句,直到序列的迭代结束

    2.2. for循环示例程序

    for count in range(0,10,2):

    print(f'Now count is {count}')

    输出的结果如下:

    Now count is 0

    Now count is 2

    Now count is 4

    Now count is 6

    Now count is 8

    [Finished in 1.0s]

    3.循环关键字

    3.1 break语句

    break语句用于跳出整个循环。如下代码所示:

    i = 1

    while i <= 20:

    i+=1

    if i%2 == 0:

    if i%10 ==0:

    break

    print(i)

    当i是10的整数倍时,程序就会退出while循环,因此输出的结果是10以内的偶数:

    2

    4

    6

    8

    [Finished in 1.1s]

    3.2 continue语句

    continue语句是用来结束本次循环,紧接着执行下一次的循环。

    我们修改break为continue,即执行以下代码:

    i = 1

    while i <= 20:

    i+=1

    if i%2 == 0:

    if i%10 ==0:

    break

    print(i)

    那么当i=10时,程序跳过这个循环进入下一个迭代,所以输出的结果是20以内的偶数,

    2

    4

    6

    8

    [Finished in 0.5s]

    3.3 pass语句

    pass是空语句,它的出现是为了保持程序结构的完整性。pass不做任何事情,一般用作占位符。比较简单,所以在这里不做赘述。

    3.4 else语句

    else语句除了和if语句配合使用外,while和for循环也可以使用else语句。在循环中使用时,else语句只在循环完成后执行,也就是说,break语句也会跳出else语句块。

    count = 0

    while (count<=9):

    print(f'Now count is {count}')

    count += 1

    else:

    print(f'{count} is greater than 9')

    我们可以看到,else会执行最后一个不满足while条件时的指令,该程序的运行结果如下:

    Now count is 0

    Now count is 1

    Now count is 2

    Now count is 3

    Now count is 4

    Now count is 5

    Now count is 6

    Now count is 7

    Now count is 8

    Now count is 9

    10 is greater than 9

    [Finished in 0.4s]

    展开全文
  • python的for循环和while循环

    千次阅读 2020-11-24 00:12:17
    for循环:for循环和while循环,两者的相同点在于都能循环做一件重复的事情;不同点在于,for循环是在序列穷尽时停止,while循环是在条件不成立时停止。1、for循环是需要先设定循环的次数(n),然后再执行属于for...
  • while和for循环嵌套

    千次阅读 2020-07-31 20:39:09
    循环软件开发中循环的使用场景while循环while循环应用计算1-100的累积(包含1100)计算1~100之间偶数的累积(包含1100)while嵌套的格式 软件开发中循环的使用场景 print("你好") print("你好") print(...
  • for循环和while循环有什么区别?众做周知,循环是Python中最基础也是最常见的知识点之一,下面我们来一起好好学习一下for循环和while循环,并对比分析两者的使用区别,帮助Python初学者可以更好地掌握两者的内容...
  • while循环和for循环的区别

    万次阅读 多人点赞 2018-08-04 11:45:59
    for循环适合已知循环次数的操作,while循环适合未知循环次数的操作。另外还有一个do...while...的循环;   1、for循环:适合循环次数是已知的操作。如: int number = 10; for(int i = 0;i &lt;= number;i++...
  • for效率测试代码: using System; using System.Diagnostics; namespace Action { class Program { static void Main(string[] args) { GC.Collect();//清理一下先 Random ra = new Random(); int count = ...
  • while循环和for循环与它们的区别

    千次阅读 2022-05-13 15:42:08
    一、while循环与if语句有些类似,检查布尔类型的真假,与if不同的是它会循环执行,执行一次后会重复执行,直到执行到...三、对比for循环和while循环,两者在使用else上有很大区别,如果else语句和while循环语句一起使用
  • C语言for循环和while循环的区别

    千次阅读 多人点赞 2020-04-16 11:09:16
    文章目录1、for循环介绍2、while循环介绍3、循环的选择4、版权声明 1、for循环介绍 for循环的一般形式为: for (语句1;表达式;语句2) { 语句块 } 1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行...
  • for循环和while的区别

    千次阅读 2021-03-29 18:48:35
    for循环的表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体;}。 while循环的表达式为:while(表达式){循环体}。 二、执行条件的判断方式不同 for循环执行末尾循环体后将再次进行条件判断,若...
  • 循环语句详解while 循环语句for 循环语句for 循环的具体应用 while 循环语句 Python 中,while 循环 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。 不同之处在于,只要条件为真,...
  • Java for循环和while循环的区别

    千次阅读 2021-04-28 21:03:30
    Java for循环和while循环的区别 一、两种循环的格式不同: 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for...
  • for循环和while循环的区别

    千次阅读 2021-04-23 11:35:38
    一般来说,for对于初学使用的要多于while,但其实while的功能要大于for,以后你慢慢会体会到的,所有的for循环都可以用while来表示,但就不是所有的while循环都可以用for循环来表示! while的用途有时候比
  • 1、 while语句 while关键bai字的中文意思...2 、do-while语句 do-while语句由关键字do和while组成,是循环语句中最典型的“先循环再判断”的流程控制结构,这个其它2个循环语句都不相同。3 、for语句 for关键字的...
  • C语言while循环语句 do while语句 for循环语句

    万次阅读 多人点赞 2019-06-10 14:17:53
    一、循环结构的思想及意义: ...for的流程图走向和while语句一模一样,但是for的思维过程,可以直接先分析从第一次开始执行,执行条件是什么,步长是多少,然后执行的语句是什么,套用for的结构即可。
  • for和while如何相互转换

    千次阅读 2020-02-13 15:57:47
    for和while相互转换 博主网站:https://blog.zhenglin.work 先看段代码: for (int i = 1; i <10 ; i++) { for (int j = 1; j <= i ; j++) { System.out.print(j+"\t"); } System.out.println(); } Syst...
  • for循环和while循环的相互转换

    万次阅读 2019-07-22 18:00:19
    for循环和while循环都是我们能经常用到的方法。 for循环的格式为: for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句; } while循环的格式为: while(条件表达式){ 执行语句; } 然而这两种循环是...
  • while、do-whilefor 三种循环的区别

    千次阅读 2022-01-17 11:02:34
    while、do-whilefor 3种循环的区别: 一.相同点: 1.都遵循循环四要素,初始化循环变量、循环条件、循环体、更新...2.while for 都是先判断循环条件,再执行循环体;do-while 先执行循环体,再判断循环条件。 ...
  • Python 中whilefor区别

    千次阅读 2020-07-07 15:33:04
    Python 中whilefor区别 while while的一般语句格式: while 判断条件(condition): 执行语句(statements)…… while的无限循环 while var ==1 var = 1 while var == 1 : # 表达式永远为 true num = int(input...
  • shell脚本——for和while之间的区别

    千次阅读 2021-03-27 19:44:49
    for和while之间的区别for和while之间的区别行读取的区别不同场景使用不同的循环通过文件创建用户的脚本统计系统里各种状态的脚本统计/etc/passwd里面shells的各种状态数量统计TCP连接状态数量 for和while之间的区别 ...
  • while循环,for循环do...while的区别

    千次阅读 2019-07-26 12:14:52
    for: 为了能够提高内存使用效率,一般在定义循环变量的时候,都是将循环变量定义在...do…while,while,for do…while循环至少执行依次循环体 而forwhile循环必须先判断条件是否成立,然后决定是否执行循环语句 ...
  • for循环与while循环

    千次阅读 2021-07-19 13:10:30
    for循环与while循环 一、for循环 1、for为关键字,表示循环控制 2、for有四要素:循环变量初始化、循环条件、循环操作、循环变量迭代 3、循环操作,这里可以有多条语句,也就是我们要循环执行的代码 4、如果 循环...
  • Python for和while循环的区别

    千次阅读 2019-02-21 15:42:10
    Python for和while循环的区别 for循环 1.for循环第一种情况 for x in range(0, 10): print(x) # 结果为0,1,2,3,4,5,6,7,8,9 # 从0开始到9结束 2.for循环第二种情况 for x in range(0, 10, 2): ...
  • 13 while循环和for循环

    千次阅读 2022-01-29 17:07:46
    1 while循环 1.1 一般形式 while语句最完整的形式是:首行以及测试表达式有一行或多行正常缩进语句构成的主体以及一个可选的else部分(else 部分会在控制权离开循环而又没有碰到break语句时执行)。Python会一直计算...
  • while..else 循环 for 循环

    千次阅读 2018-05-06 11:24:28
    while循环: 一般 if 语句一起使用 根据条件重复的去执行某一条语句 语句: while 真值表达式 语句块1.... else: 语句块2....说明: 1. 先执行真值表达式, 测试布尔值为True 或者 False 2. 如果真值...
  • whilefor和do…while循环的认识和区别 文章目录whilefor和do...while循环的认识和区别三种循环的认识while循环for循环OK!区别在这里,已经不用回顾的同学请看这里~~~~~~~~~~~~一:二: 三种循环的认识 while...
  • continue在while和for里的区别

    千次阅读 2018-07-26 15:38:21
    #include &lt;stdio.h&gt; int main(void) ... while (count &lt; 10) { ch=getchar(); if (ch == '\n') continue; putchar(ch); count++; } printf("\ncount is %d.\n...
  • while(1)和for(;;)的区别

    千次阅读 多人点赞 2019-06-14 11:29:24
    在主程序中经常会用到大循环while(1)和for(;; ),但是大部分情况下用的都是for(;; ),这是因为从反汇编的角度来看,while(1)的代码更长,执行的时间要长一点点,如下图所示。 可以看出,for的反汇编代码短于while,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,450,334
精华内容 2,180,133
关键字:

while和for哪个快