火山软件开发平台

标题: 请问 (如果) (分支判断) 语句的差异 [打印本页]

作者: xuwanbin    时间: 2022-11-19 12:08
标题: 请问 (如果) (分支判断) 语句的差异
本帖最后由 xuwanbin 于 2022-11-19 12:10 编辑

好好学习天天向上



刚才也去看了下官方文档 如果语句相当于易语言的判断  这也是易语言使用最多的流程控制语句
可是为什么还有分支判断这个语句
在C++内这个语句有什么不同吗?或者特殊情况下这个执行效率更高


作者: 李先森    时间: 2022-11-19 20:59
理论上来说分支快,因为分支只能判断整数,如果是所有类型都可以判断,如果可能内部会解析类型,个人理解
作者: 创世魂    时间: 2022-11-20 09:02
想用哪个用哪个
作者: shuimiao    时间: 2022-11-20 09:41
几乎没差别,除非是异常苛刻的高精度速度要求
作者: tmf19901124    时间: 2022-11-20 12:11
正常来说低于4-5个的判断用如果否则,超过的就用分支判断,如果特别多的就做跳转表,,,,比如,内核的ssdt系统服务表,有几百个函数,不可能做几百个如果否则吧,说到底还是为了效率。。。
作者: 乐易论坛    时间: 2022-11-20 12:24
如果根据逻辑值来进行操作

分支 基本上是确定数值了

作者: xuwanbin    时间: 2022-11-21 15:44
乐易论坛 发表于 2022-11-20 12:24
如果根据逻辑值来进行操作

分支 基本上是确定数值了

可是分支看起来不如如果一目了然
作者: Xelloss0618    时间: 2022-11-22 15:54
如果否则就是 if、else、else if
会按顺序判断,一旦条件达成就不再执行下面的判断,但如果条件很多,恰好也在最尾,那就会判断多次

分支判断是 switch,会根据提供的值直接跳到支持的分支,只需要判断一次

结论上来看,简单的整数判断,5个条件内是如果否则快,超过5个是分支判断快
作者: 小蜗牛    时间: 2022-11-22 21:53
其实这就好比..数组的索引...
如果:  循环(0,数组.取成员数(),i){
   如果(i==5){        数组.取成员(i)
  }
}

分支:  数组.取成员(5)
一次定位,和多次判断定位的区别


作者: 一代码农    时间: 2022-11-23 11:39
超过一定上限,用如果会进入到C++的一个坑,编译会报错,具体报啥不记得了,先前有遇到过。

用分支就不会有这个问题,特别是主窗口里的菜单,5个以上直接用分支吧。


作者: xuwanbin    时间: 2022-11-23 12:29
一代码农 发表于 2022-11-23 11:39
超过一定上限,用如果会进入到C++的一个坑,编译会报错,具体报啥不记得了,先前有遇到过。

用分支就不会 ...

感谢感谢 目前正在搞的就是菜单 我去改成分支
作者: lgc189    时间: 2022-11-26 15:03
一代码农 发表于 2022-11-23 11:39
超过一定上限,用如果会进入到C++的一个坑,编译会报错,具体报啥不记得了,先前有遇到过。

用分支就不会 ...

大佬,请教下,有90个文本型的 常量 怎么判断啊?
作者: 一代码农    时间: 2022-11-26 15:22
本帖最后由 一代码农 于 2022-11-26 15:26 编辑
lgc189 发表于 2022-11-26 15:03
大佬,请教下,有90个文本型的 常量 怎么判断啊?

分支只支持整数
如果类型定下来了是文本,那只能用如果来判断了。

90个而已,入不了坑 ,不至于编译报错
那个编译报错是连续嵌套有个上限值 ,假设要判断1w次一定要用如果的话也不是不可以,连续嵌套肯定报错,可以用如果来分段,比如分100段,每段里嵌套100个判断语句即可绕开那个问题。
类似如下:
如果()
否则
否则

如果()
否则
否则


作者: lgc189    时间: 2022-11-26 20:54
一代码农 发表于 2022-11-26 15:22
分支只支持整数
如果类型定下来了是文本,那只能用如果来判断了。

D:\9Z临时\111.png大佬 看我这代码:按照:

如果
否则
否则

如果
否则
否则

这样的规律取改了,运行10几次之后 程序还会自动推出。是不是我这文本写的有问题呀!

作者: qzone    时间: 2022-11-26 21:25
lgc189 发表于 2022-11-26 20:54
大佬 看我这代码:按照:

如果

试试文本数组,计次循环,可以减少你这代码的重复率。
将找字的文本设定为文本数组,通过成员数进行计次循环,每次取出数组成员进行查找并在编辑框中输入。基本解决代码的重复,如果有卡顿无相应,可以通过线程处理。


作者: lgc189    时间: 2022-11-26 21:50
qzone 发表于 2022-11-26 21:25
试试文本数组,计次循环,可以减少你这代码的重复率。
将找字的文本设定为文本数组,通过成员数进行计次 ...

感谢大佬 我去研究下
作者: emddid    时间: 2022-11-26 21:53
前排学习  插眼支持




欢迎光临 火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4