• while 循环的理解


    • if 与 while 的主要区别:if 只判断和执行一次,而 while 却代表着一个循环,执行多少次,要视情况而定;

    • 两种情况(A、B)都会让循环体执行:

      while A or B:
    • 两种情况(A、B)都会退出循环体:

      while !A and !B:
      

    1. 循环体内的变量

    • 在循环体外初始化 —— 表示,累计其值

      count = 0;
      while True:
          count += 1
    • 循环体内初始化 —— 表示,每次过去的值不会被累加:

      while True:
          sum = 0
          ...

    2. while 循环与 for 循环的转换

    int i = 0;
    for (; cond; ++i) 
    
    int i = 0;
    while (cond) {
        ...
        ++i;
    }

    3. 循环内某判断及处理仅做一次

    int cnt = 0;
    while (true) {  if (cnt++ == 1) cout << "."; ... }

    4. while 中的 if(){ return;},突然死亡法

    A;
    while(B)
    { ... }
    C;
                // 想要执行到 C;必须经过 while()
                // 而经过 while(), 可以 B 成立,进入循环
                // 也可以 B 不成立,压根没有进入循环
                // 但走到 C 的前提一定是 B 不成立了

    5. while (true)

    while (true){
        if (条件){
            ...
        }
    }

    会等价于:

    while (条件){
        ... 
    }

    6. while 循环:表消耗(consume)

    为什么 while 循环可以表示消耗的含义呢?当 while 中的条件成立时,while 循环会一直执行下去,直到 while 中的条件不成立,也即会消耗掉所有使得条件成立的状态。

    比如字符串匹配问题,

    int pos = 0;
    while ((pos < str.size() && pos < pattern.size()) && (pattern[pos] == '?' || pattern[pos] == str[pos]))
        ++pos;
  • 相关阅读:
    轮子来袭 vJine.Core Orm 之 03_架构分析
    轮子来袭 vJine.Core 之 AppConfig<T>
    C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)
    炫酷 2048 完全免费 色彩无线 流畅如飞
    DebugLog 打印方法执行时间
    [转] charles使用教程指南
    Macbook Pro配置PHP开发环境
    基于ubuntu 14搭建nginx+php+mysql环境
    Android Studio -修改LogCat的颜色
    [转]
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423981.html
Copyright © 2020-2023  润新知