2 dreamlikecloud dreamlikecloud 于 2016.09.13 08:37 提问

比较简单的问题,新人求助 200C
c#

for循环语句中,有一个if和一个else,很显然只要当if条件不满足时,就会执行else里的语句,怎么样设计当if语句中只要满足一次就可以,而其余次不满足的遍历不需要执行else。

23个回答

qq_30101695
qq_30101695   2016.09.13 11:13

借鉴第一个回答 我写的是java C#应该类似
bool f = false;
for(int i=0;i<100;++i)
{
if( f == false){
if(a)
{
//TO DO
}
else
{
//TO DO
}

        f=true;//不管理是直接if还是else  都不再执行下一回判断
}

}


liuhannan111
liuhannan111   2016.09.13 08:51
 bool f = false;
for(int i=0;i<100;++i)
{
        if(a)
        {
                //TO DO
        }
        else if( f == false)
        {
                f = true;
                //TO DO
        }
}

这样只有第一次会执行else if语句块里的内容后面就都不会进入else if语句块执行内容了

xubo_ob
xubo_ob 这样写的逻辑,会导致只要不是n次全部满足,那么必定会执行一次else. 但楼主的意思,是希望有一次满足那么永远不要执行else
大约一年之前 回复
gongziwushuang
gongziwushuang   2016.09.13 08:39

C#里面应该有个break关键字吧 ,满足就break 就ok了 ,时间太旧了 ,记不清了

dreamlikecloud
dreamlikecloud 回复公子无双: 但是只要不满足就执行else了,else最多只执行一次
大约一年之前 回复
ybdt1201
ybdt1201   2016.09.13 08:54

你在if 里面加一个return false;终止执行

liuhannan111
liuhannan111   2016.09.13 08:58

楼主其实需求没说清楚。哈哈

zhuzige521888
zhuzige521888   2016.09.13 09:01

正常情况,要是不满足if也不走else的话是不合理的,但是可以用另外一个方法模仿这种过程,给if一个恒定成立条件,就是一直让他执行,满足一次后就退出循环,即可:
bool flag = true;
for(int i=0;i {
if(flag)
{
if(i>0){
break;
}
}
else i{
flag=false;
}
}

dreamlikecloud
dreamlikecloud 那岂不是要一直执行if条件了嘛,如果if条件里没一个满足的会执行else的,但这里永远不会执行else了
大约一年之前 回复
rzxw03
rzxw03   2016.09.13 09:30

huifuceshi是不是仅放所有的if全为false的时候才执行else?那在if里弄个标志变量,for外执行不就成了

dreamlikecloud
dreamlikecloud 求具体啊~~
大约一年之前 回复
dreamlikecloud
dreamlikecloud 是这个意思,在循环for中只要if条件满足一次就可以,并执行if里的语句,如果连一次都没有满足的话才会执行else
大约一年之前 回复
dreamlikecloud
dreamlikecloud   2016.09.13 09:40

那岂不是要一直执行if条件了嘛,如果if条件里没一个满足的会执行else的,但这里永远不会执行else了

little_prog
little_prog   2016.09.13 10:30

另外弄个标记变量:boolean flag = true
if(条件 && flag){
逻辑处理;
flag = false;
}
这样,就能控制满足条件的时候只有第一次才会进入if了

little_prog
little_prog 回复dreamlikecloud: 出了循环后,判断flag就行了,如果flag==true,那么就说明没有满足条件的
大约一年之前 回复
dreamlikecloud
dreamlikecloud 那如果没有if条件中一次满足都没有的话还需要执行另一个语句啊,你这里没有体现啊
大约一年之前 回复
qq_30101695
qq_30101695   2016.09.13 11:12

借鉴第一个回答 我写的是java C#应该类似
bool f = false;
for(int i=0;i<100;++i)
{
if( f == false){
if(a)
{
//TO DO
}
else
{
//TO DO
}

            f=true;//不管理是直接if还是else  都不再执行下一回判断
    }

}

共23条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片