精华内容
下载资源
问答
  • 使用vb6.0中文开发系统开发窗体,怎么实现循环判断控件值调用是否是一致的,不一致才调用?关于循环判断控件值的方法是什么?
  • vb6.0里面实现的程序代码,怎么编写循环语句对于是否控件调用属性的判断判断一个控件的属性是否调用怎么写?
  • 使用vb6.0中文语言的循环语句for循环的功能怎么写代码判断每个控件的属性是否都调用到?怎么判断是否存在属性调用的情形?
  • 前几天做了华为的上机考试题最后感觉挺难得,有没有大神提提思路,能提供程序就太好了[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/2.gif][/img], 下面是我拍的题目 ...
  • 如何利用vb6.0编程软件的循环语法功能实现循环语句对控件是否调用属性的判断?怎么实现是否调用属性这个功能的判断操作?
  • 使用vb6.0中文开发平台的编程,如何实现循环语句对于控件是否调用属性的判断,如何对比当前属性的调用?怎么实现对属性值判断的过程是什么?
  • 递归和循环是编程中重复执行时常见的一对兄弟,因是兄弟,所以也常让人混淆。...例如下面的这个looseEqual函数,这个函数 是vue2 源码中判断两个对象或者数组是否粗略的认为相等。/** * Check if two values ar...

    递归和循环是编程中重复执行时常见的一对兄弟,因是兄弟,所以也常让人混淆。

    我是mipwan。这篇文章为大家分享一下递归和循环这对兄弟。

    7c02e61ccc44521d90da6b2d22c984d9.png

    递归

    递归,又称为递回,在前端中,通常指在函数的定义中调用自身的方法。在前端编程中经常遇到。

    例如下面的这个looseEqual函数,这个函数 是vue2 源码中判断两个对象或者数组是否粗略的认为相等。

    /**   * Check if two values are loosely equal - that is,   * if they are plain objects, do they have the same shape?   */  function looseEqual (a, b) {    if (a === b) { return true }    var isObjectA = isObject(a);    var isObjectB = isObject(b);    if (isObjectA && isObjectB) {      try {        var isArrayA = Array.isArray(a);        var isArrayB = Array.isArray(b);        if (isArrayA && isArrayB) {          return a.length === b.length && a.every(function (e, i) {            return looseEqual(e, b[i])          })        } else if (a instanceof Date && b instanceof Date) {          return a.getTime() === b.getTime()        } else if (!isArrayA && !isArrayB) {          var keysA = Object.keys(a);          var keysB = Object.keys(b);          return keysA.length === keysB.length && keysA.every(function (key) {            return looseEqual(a[key], b[key])          })        } else {          /* istanbul ignore next */          return false        }      } catch (e) {        /* istanbul ignore next */        return false      }    } else if (!isObjectA && !isObjectB) {      return String(a) === String(b)    } else {      return false    }  }

    递归的应用场景还是很多的,例如:寻找对象里的ID值,多个数求和等。总结起来大多数都具有以下特征:

    • 重复做一件事

    • 一个主体

    • 一般按照由外到内的顺序

    • 本次执行依赖上次结果

    循环

    循环是指重复的执行某个或特定的、有规律的一些操作。

    例如 vue2 源码中 将类数组对象转化为真正的数组;将数组对象转换为对象,都用的是循环。

    /**   * Convert an Array-like object to a real Array.   */  function toArray (list, start) {    start = start || 0;    var i = list.length - start;    var ret = new Array(i);    while (i--) {      ret[i] = list[i + start];    }    return ret  }
    /**   * Mix properties into target object.   */  function extend (to, _from) {    for (var key in _from) {      to[key] = _from[key];    }    return to  }  /**   * Merge an Array of Objects into a single Object.   */  function toObject (arr) {    var res = {};    for (var i = 0; i < arr.length; i++) {      if (arr[i]) {        extend(res, arr[i]);      }    }    return res  }

    循环是前端编程中最常见的一种方法,应用场景数不胜数。总结有以下几个特点:

    • 需要重复执行某个操作

    • 操作的是一个主体

    • 按照一定的顺序:倒序或者顺序

    • 本次结果不依赖上次

    以上就是循环和递归的区别了。祝愿大家都能有所得。

    展开全文
  • 当游戏退出时,我们要清除读取的信息,比如体力、生命...第19课511遇见易语言大漠循环判断游戏是否在线 内力变化: .版本 2 .子程序 内力变化, , , 显示角色的内力变化,通过时钟调用 .局部变量 str, 文本型 ..

    当游戏退出时, 我们要清除读取的信息,比如体力、生命值、内力值、经验值、等级、坐标等等,关键是如何判断游戏是否退出,这就用到了时钟,用FindWindows来检测游戏标题,找见标题说明游戏没有退出,否则已经退出,然后建立一个“在线”的全局变量,在线赋值1,退出赋值2,当然我们也可以检测游戏进程是否存在,来判断游戏是否在线。

    第19课511遇见易语言大漠循环判断游戏是否在线

    内力变化:

    511遇见(www.511yj.com)

    .版本 2
    
    .子程序 内力变化, , , 显示角色的内力变化,通过时钟调用
    .局部变量 str, 文本型
    .局部变量 s_array, 文本型, , "0"
    .局部变量 a, 双精度小数型
    .局部变量 b, 双精度小数型
    .局部变量 c, 双精度小数型
    .局部变量 内力进度条句柄, 整数型
    
    内力进度条句柄 = _启动窗口.进度条_内力.取窗口句柄 ()
    .如果 (在线 = 1)
        str = dm.Ocr (385, 1, 481, 31, “ffffff-000000”, 1)
        .如果真 (取文本长度 (str) > 0)
            _启动窗口.标签_内力.标题 = str
            a = 到整数 (取文本左边 (str, 倒找文本 (str, “/”, , 假)))
            b = 到整数 (取文本右边 (str, 取文本长度 (str) - 倒找文本 (str, “/”, , 假)))
            _启动窗口.进度条_内力.位置 = 1000
            .如果 (a = b)
                _启动窗口.进度条_内力.位置 = 1000
    
            .否则
                c = (1 - 到数值 (a ÷ b)) × _启动窗口.进度条_内力.位置
                _启动窗口.进度条_内力.位置 = _启动窗口.进度条_内力.位置 - c
    
            .如果结束
    
            发送消息 (内力进度条句柄, 1033, 真, #蓝色)
        .如果真结束
    
    
    .否则
        _启动窗口.标签_内力.标题 = “”
        _启动窗口.进度条_内力.位置 = 0
    

    经验值变化:

    511遇见(www.511yj.com)

    .版本 2
    
    .子程序 经验变化, , , 显示角色的经验变化,通过时钟调用
    .局部变量 str, 文本型
    .局部变量 s_array, 文本型, , "0"
    .局部变量 a, 双精度小数型
    .局部变量 b, 双精度小数型
    .局部变量 c, 双精度小数型
    .局部变量 经验进度条句柄, 整数型
    
    经验进度条句柄 = _启动窗口.进度条_经验.取窗口句柄 ()
    .如果 (在线 = 1)
        str = dm.Ocr (489, 1, 580, 28, “ffffff-000000”, 1)
        .如果真 (取文本长度 (str) > 0)
            a = 到整数 (取文本左边 (str, 倒找文本 (str, “%”, , 假) - 1)) ÷ 10000
            _启动窗口.标签_经验.标题 = 到文本 (100 × a) + “%”
            _启动窗口.进度条_经验.位置 = 1000
            c = a × _启动窗口.进度条_经验.位置
            _启动窗口.进度条_经验.位置 = c
            发送消息 (经验进度条句柄, 1033, 真, #黄褐)
    
        .如果真结束
    
    
    .否则
        _启动窗口.标签_经验.标题 = “”
        _启动窗口.进度条_经验.位置 = 0
    

    判断是否在线

    511遇见(www.511yj.com)

    511遇见(www.511yj.com)

    .版本 2
    
    .子程序 _时钟1_周期事件
    
    账号密码写入组合框 ()
    .如果 (dm.FindWindow (, “剑侠情缘·网络版”) ≠ 0)
        在线 = 1
    
    .否则
        在线 = 0
    .如果结束
    
    体力变化 ()
    生命变化 ()
    内力变化 ()
    经验变化 ()
    判断游戏是否退出 ()

    源码:易语言大漠循环判断游戏是否在线

     

    展开全文
  • WPF 判断调用方法堆栈

    2017-10-29 20:24:04
    最近遇到一个问题,经常有小伙伴在类A的构造里调用静态函数B,...所以我需要在判断小伙伴调用B时是否在A的构造方法里,如果是就给他异常。 本文告诉大家如何使用 StackTrace 获得调用堆栈,并且判断当前是否构造调用

    最近遇到一个问题,经常有小伙伴在类A的构造里调用静态函数B,但是这时B依赖于A的初始化完成,于是就无限循环。所以我需要在判断小伙伴调用B时是否在A的构造方法里,如果是就给他异常。

    本文告诉大家如何使用 StackTrace 获得调用堆栈,并且判断当前是否构造调用

    假设有方法 Foo ,如果需要判断 Foo 的调用有哪些,可以使用下面的代码

            public void Foo()
            {
                var stackTrace = new StackTrace();
            }

    使用var n = stackTrace.FrameCount;可以得到当前的栈有几个,最顶部就是最近调用。

    例如调用是 lindexi->A->csdn->Foo 那么对应的栈就是下表

    序号 方法
    3 lindexi
    2 A
    1 csdn
    0 Foo

    如果要判断当前的调用是构造函数,那么需要知道,构造函数就是.ctor 那么使用下面的代码就可以判断

                var stackTrace = new StackTrace();
                var n = stackTrace.FrameCount;
                for (int i = 0; i < n; i++)
                {
                    //判断构造
                    var cto = ".ctor";
                    var f = stackTrace.GetFrame(i).GetMethod();
                    if (f.Name.Equals(cto))
                    {
                        Console.WriteLine("构造使用");
                    }
                    Console.WriteLine(stackTrace.GetFrame(i).GetMethod().Name);
                }
    

    建议把上面的代码复制到一个项目,自己跑一下就知道了

    如果还需要判断是指定类型的构造函数,那么需要使用下面的代码,下面代码判断是类型GqpluGkmoanvp的构造调用

            public void Foo()
            {
                var stackTrace = new StackTrace();
                var n = stackTrace.FrameCount;
                for (int i = 0; i < n; i++)
                {
                    //判断构造
                    var cto = ".ctor";
                    var f = stackTrace.GetFrame(i).GetMethod();
                    if (f.Name.Equals(cto))
                    {
                        var t = f.DeclaringType;
                        if (t.IsSubclassOf(typeof(GqpluGkmoanvp)) || t == typeof(GqpluGkmoanvp))
                        {
                            Console.WriteLine("构造使用");
                        }
                    }
                    Console.WriteLine(stackTrace.GetFrame(i).GetMethod().Name);
                }
            }
        }

    实际使用t.IsSubclassOf(typeof(GqpluGkmoanvp))有些多余,但是写了也可以。因为如果写在构造,那么就会先调用基类的构造方法,所以已经会出现判断到基类的构造方法。

    例如有下面的类,在构造方法调用Foo,那么调用堆栈就是 Foo-A1-A

    public class A1:A
    {
        public A1()
        {
            Foo();
        }
    }
    
    public class A
    {
    
    }

    下面是我封装的一个方法,用于判断当前调用是否在某个类里的某个方法

             /// <summary>
            /// 查看调用这个方式是否在某个类的某个方法
            /// </summary>
            /// <param name="class"></param>
            /// <param name="method"></param>
            /// <returns></returns>
            public static bool CheckStackClassMethod(Type @class, string method)
            {
                var stackTrace = new StackTrace();
                var n = stackTrace.FrameCount;
                for (int i = 1; i < n; i++)
                {
                    var f = stackTrace.GetFrame(i).GetMethod();
                    if (f.Name.Equals(method))
                    {
                        var t = f.DeclaringType;
                        if (t == @class || t.IsSubclassOf(@class) || (@class.IsInterface && @class.IsAssignableFrom(t)))
                        {
                            return true;
                        }
                    }
                }
                return false;
            }

    代码放在WPF 判断调用方法堆栈

    因为传入的类型可能是接口,所以类型判断就需要加上接口继承的,所有代码已经给了大家。

    使用这个方法,可以把判断是否在某个类的某个方法调用这个函数就可以修改为下面代码

           public void Foo()
            {
                if (CheckStackClassMethod(typeof(GqpluGkmoanvp), ".d"))
                {
                    Console.WriteLine("构造使用");
                }
            }

    我经过测试下使用这个函数,判断是否我要保护的方法在我不想要被调用的类调用,如果是就抛出异常。接着我的朋友的代码跑不过,就把我祭天。

    感谢 walterlv

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

    展开全文
  • 用python 判断树结构是否相同,巧妙利用列表 in 操作 1)判断一个树结构是否相同,我们需要判断节点值是否相同,以及其子树是否相同,...第一次尝试:先判断节点值,然后for 循环所有节点,每一次循环,利用索引值,

    用python 判断树结构是否相同,巧妙利用列表 in 操作

    1)判断一个树结构是否相同,我们需要判断节点值是否相同,以及其子树是否相同,比如图片所示,先判断根节点是否为 ‘+’ 然后再判断4个子树是否相同
    2)子树相同可以通过递归调用实现,也就是说,我们实现一层的判断逻辑,以及如何递归的逻辑即可。

    在这里插入图片描述
    问题1:在__eq__() 如何调用自己:class1==class2 #自动调用方法,或者class1.eq(class2)

    第一次尝试:先判断节点值,然后for 循环所有节点,每一次循环,利用索引值,递归调用自己一次,判断对应子树是否相等

    def __eq__(self, other: ExprTree) -> bool:
            """
            Return whether this ExprTree is equivalent to <other>.
    
     		"""
            
            if self._root != other._root:
                return False
            if len(self._subtrees) != len(other._subtrees):  #排除self子树为空,直接判断相等
                return False
            if self._subtrees != []:
                #这样递归是有问题的,子树排列顺序不同也会导致判断为FALSE
                for sub_index in range(len(self._subtrees)):
                    if self._subtrees[sub_index] == other._subtrees[sub_index]: 
                        pass
                    else:
                        return False
            return True
    
    

    但,这样递归是有问题的,子树排列顺序不同也会导致判断为FALSE

    改进后判断两个列表元素是否相等方法,来解决这个问题

    if self._subtrees != []:
                #换成这样的递归解决问题,判断两个列表元素是否相等方法,来解决这个问题,根据结果可以证明 in 操作是将元素与每一个列表中元素比较
                for sub in self._subtrees:
                    if sub not in other._subtrees:
                        return False
                for sub in other._subtrees:
                    if sub not in self._subtrees:
                        return False
            return True
    

    完美解决,其实就是利用 in list 操作,会把列表所有元素遍历一遍是否相等,在遍历时候 如果两边是 class1==class2 形式又会自动调用 eq()方法。
    是不是很巧妙。小小操作省去了大量逻辑代码。这就是python的魅力。

    展开全文
  • 任务背景:调用发短信的功能已经成型,发短信的功能可以实现短信单发,短信群发,群发的时候手机号可以写10个以上,但是发短信的方法盛不下10个手机号,所以要循环调用发短信的方法,界面如下,界面是用bootstrap写...
  • 调用格式: 〈无返回值〉 判断循环首 (逻辑型 条件) - 系统核心支持库->流程控制 英文名称:while 本命令根据提供的逻辑参数的值,来决定是否进入循环。如果提供的逻辑参数值为真,程序顺序执行下一条命令进入...
  • 运用vb6.0中文编程怎么对窗体上的控件是否调用了一个属性的状态进行代码的判断?运用循环语句是否可以判断属性?
  • 函数介绍:toCharArray() 方法将字符串转换为字符数组。语法:public char[] toCharArray()返回值:字符数组。在线视频教程推荐:java学习视频判断思路:首先通过调用...示例如下://判断是否char是否为空impor...
  •  do{  //判断是否完整  for(int i = 0 ; i < nameLongth.length ; i++){  if(nameLongth[i].equals("sunlineTELFile.ctl")){  count_number = 1;  }   }  //数据不完整,则等到20...
  • A B 循环依赖的话, A创建的过程中会先从判断验证是否支持循环依赖,判断容器对象的allowCircularReferences属性(默认为true),从单利池(其实是一个beandefinetionmap)get ,现在肯定获取不到,里面只有spring...
  • JavaScript笔记4 ...isSXH给它一个数字,它可以立马告诉你是否为水仙花数 它是怎么判断的?不用管,只要用 在主程序中,我们一直调用isSXH就可以了 函数给我们的思想,对一个规模大,难度高的问题提供一个
  • 所以我偷偷看了有赞的源码,了解了它的思想:给每一项增加唯一标识符,新建一个数组用于存放需要展开项的唯一标识符,在节点中判断数组中是否存在当前点击展开的标识符,存在则展开,隐藏则是出栈当前的标识符 ...
  • 读取文件之前先用listFiles(fileName)方法 判断一下该文件是否存在. 结果循环中第一次判断文件存在,以后的每次循环判断为不存在.. 上网查了一下说是 retrieveFileStream(fileName)方法返回一个inputStream 使...
  • 判断是否为数字,不是就继续返回

    热门讨论 2020-11-12 21:17:17
    我做的是判断是否为数字,是就返回,不是就提示重新输入,并且多次调用 运用:方法、循环、try-catch跳过、返回值等具体方法 思路:先显示“请输入数字内容 在下方建立方法并定义字符串类型, 并运用try-catch来达到...
  • 请问vb6.0中文开发编程窗体怎么实现在窗体循环里分类调用上面的控件?怎么依次判断每个控件的属性是否调用
  • js 判断是否为闰年

    2013-01-05 11:51:51
    [color=red]判断是否为闰年闰年的条件是满足下列二者条件之一:年号能被4整除、但不能被100整除,二是年号能被4整除,又能被400整除。[/color] 用js实现的年月日列表 总体上分为三步: 1.页面加载时通过...
  • 如题,自己参照网上的例子做了一个C语言的PL0编译器,能跑通,但是遇到调用procedure的时候,就会一直循环无限调用,查错查了好久,还是没有找到,希望有大神能为我解答一下!谢谢~ 代码如下,有点长。。 #include...
  • IsSXH给它一个数字它可以立马告诉你是否为水仙花数 它是怎么判断的?不用管,只要用 在主程序中,我们一直调用isSXH就可以了 函数给我们的思想,对一个规模大,难度高的问题提供一个解决问题的 思路,将问题拆分,...
  • 判断访问的用户是否使用手机端进行访问,如果是,则重定向到手机页面 2.无论手机或者电脑端都必须循环播放图片 3.电脑端图片宽300,高200 像素。手机端图片宽设置为100%,高为200像素。 技术思路: 1.调用...
  • 题目:设计一个算法完成以下功能:判断一个链表是否有环,如果有,找出环的入口点并返回。否则返回NULL 关键字:单链表+判断循环 思路 关注:递归算法的设计重点在于找到“递归”的部分,即重复调用函数,改变部分...
  • 1、 GetExitCodeThread ... 该方法的优点是除了可以判断是否已经退出,还可以获取到退出代码,也就是可以判断退出原因. 该方法在调用后,会立即返回,如果需要等待线程调用,请放在一个循环内循环调用. 2、Wait...
  • $con = mysqli_connect($proData['PRO_MYSQL_ADDR'],$proData['PRO_MYSQL_USER'],$proData['PRO_MYSQL_PWD'],$proData['PRO_MYSQL'],$proData['... //判断是否连接成功 if(!$con){ echo "数据库失败!"; } ...
  • 用C语言编写自定义函数prime(int x),判断x是否为素数?int prime(int x){int i,kk=(int)sqrt( (double)x )for(i=2i&...gtk)retrun 1elsereturn 0}C语言,编写函数判断一个整数是否为素数,在主函数中调用该函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,457
精华内容 582
关键字:

判断是否循环调用