atom100 发表于 2014-9-17 07:49:19

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

请教,如下所示
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是否 满足??

Arvin_lu 发表于 2014-9-17 07:50:20

是的。。。。。。。。。。

canger 发表于 2014-9-17 07:52:23

先检验条件1,不满足时再检验条件2,按顺序执行。

lcl 发表于 2014-9-17 08:04:07

坐听~                                                   

jnak47 发表于 2014-9-17 08:07:47

任何一个运行周期,总是先检测条件1是否满足,若满足,则执行;若不满足,继续检测条件2是否满足,只有当条件1和条件2均不满足时,执行else语句。

fangy 发表于 2014-9-17 08:22:30

优先前一个判断

luckly2008can 发表于 2014-9-17 08:28:36

必须优先第一个条件

haibaogk 发表于 2014-9-17 08:30:17

判断了第一个就不去判断第二个了。除非if语句断掉,进入下一个平行语句
如if ()
else if()

if(),,,

ahuang227 发表于 2014-9-17 08:33:50

还没见过自相矛盾的if   else,,

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


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

wjjsl 发表于 2014-9-17 08:38:12

顺序判断,满足执行条件,然后break了

liyu7788962 发表于 2014-9-17 08:39:52

优先执行第一个满足条件

落叶知秋 发表于 2014-9-17 08:40:06

测试一下不就知道了?

guohero 发表于 2014-9-17 08:41:53

前面满足了,后面就不会再判断了

takashiki 发表于 2014-9-17 08:44:50

楼主,无论在什么语言(包括自然语言和编程语言)中,if和else都是互斥的,某些条件满足了if,那它一定不满足else。语文和逻辑要加强啊。

fy_bk 发表于 2014-9-17 08:47:15

任何一个运行周期,总是先检测条件1是否满足,若满足,则执行;若不满足,继续检测条件2是否满足,只有当条件1和条件2均不满足时,执行else语句.同意这一条

haijun822 发表于 2014-9-17 08:49:46

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

河河河 发表于 2014-9-17 09:01:08

先第一个条件,满足后不检测其它条件

minwang440 发表于 2014-9-17 09:02:33

只执行1,我也碰到过

lryxr2507 发表于 2014-9-17 09:17:10

有时脑筋短路,真的会被这个搞蒙的.尤其是嵌套多了,这时我一般会跑到的洗手间去吸一支烟,慢慢想.

lksvshdl 发表于 2014-9-17 09:23:09

对的,1成立就不会判断2了

qtds67 发表于 2014-9-17 09:25:31

if成立了else就不再判断执行,否则才会else下去

dglb73 发表于 2014-9-17 09:27:15

条件1不满足才去 else 检查 条件2, 条件1满足了就只执行 else 之前的语句。

startwar0418 发表于 2014-9-17 09:39:36

都满足肯定进第一个

151238379 发表于 2014-9-17 10:05:20

条件1和2都成立的话,永远不会执行条件2!

licongdwqx 发表于 2014-9-17 10:07:13

是的 自上而下执行的

guyue180 发表于 2014-9-17 10:18:58

这个不同情况下调试一下就很清楚了。

zzj0329 发表于 2014-9-17 11:11:22

如果是case语句呢,多个case间条件有重叠,并且每个case都带break,那怎么判断

Nuker 发表于 2014-9-17 13:20:56

case带break?
任意一个时刻(组合逻辑)或者时钟沿(时序逻辑)输入只能是一种状态, 当前哪个状态成立就进入对应的分支, 这一点if...else...和case是一样的, 不同之处是if...else...分优先级而case不分.

cyzc2008 发表于 2014-9-17 13:35:02

if只要满足,else就不执行了!这个其实很好验证,随便找个编译器,C语言证明一下就ok了~我前两天也是有同样的困惑~

stevencheng 发表于 2014-9-17 14:05:51

楼主应该找本C语言基础的书好好看看。

Cavsle 发表于 2014-9-17 16:00:05

选择语句的条件判断语句是唯一的,要是重复了,只能说明你程序有问题

DepravedLucien 发表于 2014-9-17 18:12:15

是是是是

honeybear 发表于 2014-9-17 18:15:24

必须第一个

lanliang714 发表于 2014-9-17 18:36:09

可以看看综合出来的rtl视图,你马上就明白了

gdoujiajia 发表于 2014-9-17 19:47:00

必须第一个执行啊

busterace 发表于 2014-9-17 19:51:20

执行第一个啊

jackiezeng 发表于 2014-9-17 20:50:01

这个还真是的,,,条件满足,执行了语句,这个IF就算完成了。

4058665 发表于 2014-9-17 20:51:17

从上到下第一个满足条件的就结束

djragon 发表于 2014-9-17 20:56:34

嗯嗯。。,,            

zfz1992 发表于 2014-9-17 21:25:50

过来看看

cslrd 发表于 2014-9-17 21:39:20

二选一,条件为真就不执行下面的

kawaii_boy 发表于 2014-9-17 23:22:30

请仔细看看C语言基础教程

huke08@126.com 发表于 2014-9-18 00:48:08

begin end    顺序块

atom100 发表于 2014-9-18 06:10:12

谢谢,知道了

y1z2f4 发表于 2014-9-18 07:53:24

if成立了else就不再判断执行,否则才会执行else。

wuqt 发表于 2014-9-18 12:53:55

对的,else的逻辑就是否定条件1。 else if( 条件2) 就相当于if( (!条件1)&(条件2) )。是绝对互拆的。if和else两个语句不可能同时成立的。

wgxold 发表于 2014-9-18 22:25:48

满足第一个就不会执行第二个

iixin 发表于 2014-9-18 22:42:51

问这个,逻辑上问题,如果85分,良好,否则,如果60分以上,及格,否则,不及格。86分,肯定给良好呗。

lansen0815 发表于 2014-9-19 14:59:25

if 语句 与 if 语句是并行的
if ,else if,else if,else 是顺序的
页: [1]
查看完整版本: if ...else...条件执行,如果都满足,执行第一个 ?