日期:2014-05-17  浏览次数:20971 次

C#中if语句没有else也没有return的执行流程是怎样的?
比如这样一个语句:
int a,b=5;
public bool flag = true;

private void button1_Click(object sender, EventArgs e)
 {
   if (flag)
     {
        a=b;
        flag = false;
     }
 }
这个虽然是个很简单的语句,但是它没有else,没有else if,没有return,这种if语句是该是怎样执行流程的呢?
------解决方案--------------------
这样就是只能执行一次。第二次为假了,那IF里边就不执行了,你理解正确啊。如果要点一下,然后再点一下执行另外的,加个ELSE或者再弄一个IF判断假也可以咯。。哈哈
------解决方案--------------------
赋值并修改值啊flag=true,执行if然后在改变flag的值
------解决方案--------------------
引用:
引用:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件了,这个逻辑有问题么?
        ……


那你何必要改flag的值呢?不是多此一举么???
------解决方案--------------------
引用:
引用:引用:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件……

楼主是想表达什么呢……………………
------解决方案--------------------
设个断点跑一下、跑的过程中看看各个变量的值、就知道它是怎么跑的了
------解决方案--------------------
引用:
引用:
引用:引用:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行bu……

你是想一直发数据过去?然后当心处理不过来?
那就用循环发送过去、循环体里面发一次就休眠一段时间
------解决方案--------------------
引用:
其实里面的a=b;只是个例子
主要是想看看if语句在没有else,else if,和return的时候是怎样执行的,肯定有懂的,帮解释下


if(条件1)
{
//满足条件1   执行下面代码1
代码1
}
else if(条件2)
{
//不满足条件1 满足条件2 执行代码2
代码2
}
else
{
//不满足条件1 也不满足条件2 执行代码3
代码3
}


return  //放在代码1里 条件2不会被判断 也就是后面的代码都不会被执行   直接跳出方法
放在代码2里面 会判断条件1  条件1满足照样会执行代码1  然后就判断条件2  然后执行代码2  后面的代码就不会执行  直接跳出方法
------解决方案--------------------
你这是何必呢 当心down一直发 你就在up里处理  你又何必要down呢  click也才1次 up后才触发