C#中if语句没有else也没有return的执行流程是怎样的?

时间:2021-07-21 01:40:30
比如这样一个语句:
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语句是该是怎样执行流程的呢?

19 个解决方案

#1


没明白题意。。。

如果flag是true 就把 b赋值给a呗  否则就退出点击事件了

#2


引用 1 楼 rayyu1989 的回复:
没明白题意。。。

如果flag是true 就把 b赋值给a呗  否则就退出点击事件了

那执行完之后flag就变成false了,是不是要让这点击事件再次被执行的话,必须得让这flag再次变为true才行?

#3


这个.....还真的很“难”解释。

#4


引用 2 楼 botao258 的回复:
那执行完之后flag就变成false了,是不是要让这点击事件再次被执行的话,必须得让这flag再次变为true才行?


你这不是挺有理解能力的嘛。就是这样的。

#5


引用 2 楼 botao258 的回复:
引用 1 楼 rayyu1989 的回复:没明白题意。。。

如果flag是true 就把 b赋值给a呗  否则就退出点击事件了
那执行完之后flag就变成false了,是不是要让这点击事件再次被执行的话,必须得让这flag再次变为true才行?
如果要执行多次,那你何必要判断flag还把他弄成false呢

#6


这样就是只能执行一次。第二次为假了,那IF里边就不执行了,你理解正确啊。如果要点一下,然后再点一下执行另外的,加个ELSE或者再弄一个IF判断假也可以咯。。哈哈

#7


赋值并修改值啊flag=true,执行if然后在改变flag的值

#8


期待语出惊人的一幕

#9


引用 7 楼 zj735539703 的回复:
赋值并修改值啊flag=true,执行if然后在改变flag的值

因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件了,这个逻辑有问题么?

#10


引用 9 楼 botao258 的回复:
引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件了,这个逻辑有问题么?
        ……


那你何必要改flag的值呢?不是多此一举么???

#11


引用 10 楼 zj735539703 的回复:
引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件……

楼主是想表达什么呢……………………

#12


设个断点跑一下、跑的过程中看看各个变量的值、就知道它是怎么跑的了 C#中if语句没有else也没有return的执行流程是怎样的?

#13


引用 10 楼 zj735539703 的回复:
引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件……

这个数据主要是发给单片机的,如果按住按钮不放,担心它会一直发数据过去,让单片机处理不过来

#14


其实里面的a=b;只是个例子
主要是想看看if语句在没有else,else if,和return的时候是怎样执行的,肯定有懂的,帮解释下

#15


引用 11 楼 kyoguys 的回复:
引用 10 楼 zj735539703 的回复:引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为tru……

主要表达一下意思:
其实里面的a=b;只是个例子
主要是想看看if语句在没有else,else if,和return的时候是怎样执行的,肯定有懂的,帮解释下

#16


引用 13 楼 botao258 的回复:
引用 10 楼 zj735539703 的回复:
引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行bu……

你是想一直发数据过去?然后当心处理不过来?
那就用循环发送过去、循环体里面发一次就休眠一段时间 C#中if语句没有else也没有return的执行流程是怎样的?

#17


引用 14 楼 botao258 的回复:
其实里面的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  后面的代码就不会执行  直接跳出方法

#18


你这是何必呢 当心down一直发 你就在up里处理  你又何必要down呢  click也才1次 up后才触发

#19


引用 17 楼 wawd74520 的回复:
引用 14 楼 botao258 的回复:其实里面的a=b;只是个例子
主要是想看看if语句在没有else,else if,和return的时候是怎样执行的,肯定有懂的,帮解释下

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

感谢,可以结贴了

#1


没明白题意。。。

如果flag是true 就把 b赋值给a呗  否则就退出点击事件了

#2


引用 1 楼 rayyu1989 的回复:
没明白题意。。。

如果flag是true 就把 b赋值给a呗  否则就退出点击事件了

那执行完之后flag就变成false了,是不是要让这点击事件再次被执行的话,必须得让这flag再次变为true才行?

#3


这个.....还真的很“难”解释。

#4


引用 2 楼 botao258 的回复:
那执行完之后flag就变成false了,是不是要让这点击事件再次被执行的话,必须得让这flag再次变为true才行?


你这不是挺有理解能力的嘛。就是这样的。

#5


引用 2 楼 botao258 的回复:
引用 1 楼 rayyu1989 的回复:没明白题意。。。

如果flag是true 就把 b赋值给a呗  否则就退出点击事件了
那执行完之后flag就变成false了,是不是要让这点击事件再次被执行的话,必须得让这flag再次变为true才行?
如果要执行多次,那你何必要判断flag还把他弄成false呢

#6


这样就是只能执行一次。第二次为假了,那IF里边就不执行了,你理解正确啊。如果要点一下,然后再点一下执行另外的,加个ELSE或者再弄一个IF判断假也可以咯。。哈哈

#7


赋值并修改值啊flag=true,执行if然后在改变flag的值

#8


期待语出惊人的一幕

#9


引用 7 楼 zj735539703 的回复:
赋值并修改值啊flag=true,执行if然后在改变flag的值

因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件了,这个逻辑有问题么?

#10


引用 9 楼 botao258 的回复:
引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件了,这个逻辑有问题么?
        ……


那你何必要改flag的值呢?不是多此一举么???

#11


引用 10 楼 zj735539703 的回复:
引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件……

楼主是想表达什么呢……………………

#12


设个断点跑一下、跑的过程中看看各个变量的值、就知道它是怎么跑的了 C#中if语句没有else也没有return的执行流程是怎样的?

#13


引用 10 楼 zj735539703 的回复:
引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行button1的click事件……

这个数据主要是发给单片机的,如果按住按钮不放,担心它会一直发数据过去,让单片机处理不过来

#14


其实里面的a=b;只是个例子
主要是想看看if语句在没有else,else if,和return的时候是怎样执行的,肯定有懂的,帮解释下

#15


引用 11 楼 kyoguys 的回复:
引用 10 楼 zj735539703 的回复:引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为tru……

主要表达一下意思:
其实里面的a=b;只是个例子
主要是想看看if语句在没有else,else if,和return的时候是怎样执行的,肯定有懂的,帮解释下

#16


引用 13 楼 botao258 的回复:
引用 10 楼 zj735539703 的回复:
引用 9 楼 botao258 的回复:引用 7 楼 zj735539703 的回复:赋值并修改值啊flag=true,执行if然后在改变flag的值
因为我想在点这个button1的时候只执行一次 a=b;
然后这个button1在松开的时候是不是会自动触发Keyup事件,在Keyup事件里,再对这个flag赋为true,下次又可以执行bu……

你是想一直发数据过去?然后当心处理不过来?
那就用循环发送过去、循环体里面发一次就休眠一段时间 C#中if语句没有else也没有return的执行流程是怎样的?

#17


引用 14 楼 botao258 的回复:
其实里面的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  后面的代码就不会执行  直接跳出方法

#18


你这是何必呢 当心down一直发 你就在up里处理  你又何必要down呢  click也才1次 up后才触发

#19


引用 17 楼 wawd74520 的回复:
引用 14 楼 botao258 的回复:其实里面的a=b;只是个例子
主要是想看看if语句在没有else,else if,和return的时候是怎样执行的,肯定有懂的,帮解释下

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

感谢,可以结贴了

#20