搜索
bottom↓
回复: 48

if ...else...条件执行,如果都满足,执行第一个 ?

[复制链接]

出0入0汤圆

发表于 2014-9-17 07:49:19 | 显示全部楼层 |阅读模式
请教,如下所示
always@(posedge clk_ref or negedge rst_n)
begin
        if(!rst_n)       
               
        else if(init_done == 1'b1)
                begin                                                 
                if(条件1)         
                       
                else if(条件2)
                       
                else
                       
                end
        else
               
end
如果条件1 和条件2  都满足的话,先执行条件1,而不执行条件2吧 ?
下个周期 如果条件1  不满足,才去检验条件2是否 满足  ??

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-9-17 07:50:20 | 显示全部楼层
是的。。。。。。。。。。

出0入0汤圆

发表于 2014-9-17 07:52:23 | 显示全部楼层
先检验条件1,不满足时再检验条件2,按顺序执行。

出0入0汤圆

发表于 2014-9-17 08:04:07 | 显示全部楼层
坐听~                                                     

出0入0汤圆

发表于 2014-9-17 08:07:47 | 显示全部楼层
任何一个运行周期,总是先检测条件1是否满足,若满足,则执行;若不满足,继续检测条件2是否满足,只有当条件1和条件2均不满足时,执行else语句。

出0入0汤圆

发表于 2014-9-17 08:22:30 | 显示全部楼层
优先前一个判断

出0入0汤圆

发表于 2014-9-17 08:28:36 | 显示全部楼层
必须优先第一个条件

出0入0汤圆

发表于 2014-9-17 08:30:17 | 显示全部楼层
判断了第一个就不去判断第二个了。除非if语句断掉,进入下一个平行语句
如if ()
  else if()

if(),,,

出0入0汤圆

发表于 2014-9-17 08:33:50 | 显示全部楼层
还没见过自相矛盾的if   else,,

如果你不吃饭,就不能上论坛?哈哈。


这个是个标准长度的尾巴,你能看到这个尾巴说明你的浏览器是正常的。欢迎光临我的淘宝店。

出0入0汤圆

发表于 2014-9-17 08:38:12 | 显示全部楼层
顺序判断,满足执行条件,然后break了

出0入0汤圆

发表于 2014-9-17 08:39:52 | 显示全部楼层
优先执行第一个满足条件

出40入42汤圆

发表于 2014-9-17 08:40:06 | 显示全部楼层
测试一下不就知道了?

出0入0汤圆

发表于 2014-9-17 08:41:53 | 显示全部楼层
前面满足了,后面就不会再判断了

出0入93汤圆

发表于 2014-9-17 08:44:50 | 显示全部楼层
楼主,无论在什么语言(包括自然语言和编程语言)中,if和else都是互斥的,某些条件满足了if,那它一定不满足else。语文和逻辑要加强啊。

出0入0汤圆

发表于 2014-9-17 08:47:15 | 显示全部楼层
任何一个运行周期,总是先检测条件1是否满足,若满足,则执行;若不满足,继续检测条件2是否满足,只有当条件1和条件2均不满足时,执行else语句.同意这一条

出0入0汤圆

发表于 2014-9-17 08:49:46 | 显示全部楼层
楼主用FPGA就不要再用写C语言的顺序思想了吧,你的这几句话写的是一个多路选择器,你需要明白将来综合出来的电路的是什么样子,然后就自然很清楚输出结果,我在网上找了个图片供参考:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入16汤圆

发表于 2014-9-17 09:01:08 | 显示全部楼层
先第一个条件,满足后不检测其它条件

出0入0汤圆

发表于 2014-9-17 09:02:33 | 显示全部楼层
只执行1,我也碰到过

出0入0汤圆

发表于 2014-9-17 09:17:10 | 显示全部楼层
有时脑筋短路,真的会被这个搞蒙的.尤其是嵌套多了,这时我一般会跑到的洗手间去吸一支烟,慢慢想.

出0入0汤圆

发表于 2014-9-17 09:23:09 | 显示全部楼层
对的,1成立就不会判断2了

出0入0汤圆

发表于 2014-9-17 09:25:31 | 显示全部楼层
if成立了else就不再判断执行,否则才会else下去

出0入0汤圆

发表于 2014-9-17 09:27:15 | 显示全部楼层
条件1不满足才去 else 检查 条件2, 条件1满足了就只执行 else 之前的语句。

出0入0汤圆

发表于 2014-9-17 09:39:36 来自手机 | 显示全部楼层
都满足肯定进第一个

出0入0汤圆

发表于 2014-9-17 10:05:20 | 显示全部楼层
条件1和2都成立的话,永远不会执行条件2!

出0入0汤圆

发表于 2014-9-17 10:07:13 | 显示全部楼层
是的 自上而下执行的

出0入0汤圆

发表于 2014-9-17 10:18:58 | 显示全部楼层
这个不同情况下调试一下就很清楚了。

出0入0汤圆

发表于 2014-9-17 11:11:22 来自手机 | 显示全部楼层
如果是case语句呢,多个case间条件有重叠,并且每个case都带break,那怎么判断

出0入17汤圆

发表于 2014-9-17 13:20:56 | 显示全部楼层
case带break?
任意一个时刻(组合逻辑)或者时钟沿(时序逻辑)输入只能是一种状态, 当前哪个状态成立就进入对应的分支, 这一点if...else...和case是一样的, 不同之处是if...else...分优先级而case不分.

出0入0汤圆

发表于 2014-9-17 13:35:02 | 显示全部楼层
if只要满足,else就不执行了!这个其实很好验证,随便找个编译器,C语言证明一下就ok了~我前两天也是有同样的困惑~

出0入0汤圆

发表于 2014-9-17 14:05:51 | 显示全部楼层
楼主应该找本C语言基础的书好好看看。

出0入0汤圆

发表于 2014-9-17 16:00:05 | 显示全部楼层
选择语句的条件判断语句是唯一的,要是重复了,只能说明你程序有问题

出0入0汤圆

发表于 2014-9-17 18:12:15 | 显示全部楼层
是是是是

出0入0汤圆

发表于 2014-9-17 18:15:24 | 显示全部楼层
必须第一个

出0入0汤圆

发表于 2014-9-17 18:36:09 | 显示全部楼层
可以看看综合出来的rtl视图,你马上就明白了

出0入4汤圆

发表于 2014-9-17 19:47:00 | 显示全部楼层
必须第一个执行啊

出0入0汤圆

发表于 2014-9-17 19:51:20 | 显示全部楼层
执行第一个啊

出0入0汤圆

发表于 2014-9-17 20:50:01 | 显示全部楼层
这个还真是的,,,条件满足,执行了语句,这个IF就算完成了。

出0入0汤圆

发表于 2014-9-17 20:51:17 | 显示全部楼层
从上到下第一个满足条件的就结束

出0入0汤圆

发表于 2014-9-17 20:56:34 | 显示全部楼层
嗯嗯。。,,            

出0入0汤圆

发表于 2014-9-17 21:25:50 | 显示全部楼层
过来看看

出0入0汤圆

发表于 2014-9-17 21:39:20 来自手机 | 显示全部楼层
二选一,条件为真就不执行下面的

出0入0汤圆

发表于 2014-9-17 23:22:30 | 显示全部楼层
请仔细看看C语言基础教程

出0入0汤圆

发表于 2014-9-18 00:48:08 | 显示全部楼层
begin end    顺序块

出0入0汤圆

 楼主| 发表于 2014-9-18 06:10:12 | 显示全部楼层
谢谢,知道了

出0入0汤圆

发表于 2014-9-18 07:53:24 | 显示全部楼层
if成立了else就不再判断执行,否则才会执行else。

出0入0汤圆

发表于 2014-9-18 12:53:55 | 显示全部楼层
对的,else的逻辑就是否定条件1。 else if( 条件2) 就相当于  if( (!条件1)&(条件2) )。是绝对互拆的。if和else两个语句不可能同时成立的。

出0入0汤圆

发表于 2014-9-18 22:25:48 | 显示全部楼层
满足第一个就不会执行第二个

出0入0汤圆

发表于 2014-9-18 22:42:51 来自手机 | 显示全部楼层
问这个,逻辑上问题,如果85分,良好,否则,如果60分以上,及格,否则,不及格。86分,肯定给良好呗。

出0入0汤圆

发表于 2014-9-19 14:59:25 | 显示全部楼层
if 语句 与 if 语句是并行的
if ,else if,else if,else 是顺序的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表