代码写错了改成这样
do
{
if (i==一个复杂运算)
{
a=10;
....
}
}
while(ture)

解决方案 »

  1.   

    设置一个Flag就是络,
    每次判断之前先看看Flag的指
      

  2.   

    bool j = false;
    do
    {if (!j && i==一个复杂运算)
    {
    j = true
    a=10;
    ....
    }
    }
    while(ture)
      

  3.   

    bool j = false;
    do
    {if (!j && i==一个复杂运算)
    {
    j = true
    a=10;
    ....
    }
    }
    while(ture
    这样还是要IF判断啊。
    我是说连IF这个语句都不执行直接执行A==0
      

  4.   

    bool j = false;
    do
    {if (!j && i==一个复杂运算)
    {
    j = true
    a=10;
    ....
    }
    }
    while(ture
    这样还是要IF判断啊。
    我是说连IF这个语句都不执行直接执行A=10
      

  5.   

    不可能吧
    不执行if怎么知道该不该执行a=10?
    那if条件岂不是聋子的耳朵?
      

  6.   

    我觉得如果这个复杂运算与循环体中的变量没有关系的话,可以把它放在循环体外先执行后保存在一个变量中。
    temp=一个复杂运算;
    do
    {
     if(i==temp)
     {
       a=10;
      }
    }
    while(true);
      

  7.   

    if a elseif b如果a成立就不去判断b了
      

  8.   

    你总是在强调那个复杂运算,什么是“忽发”?你的意思是不是说如果当i是等于那个复杂运算的时候,并不执行那个运算,而是直接执行a= 10 呀。但是如果你想i等于那个运算,那个运算不算出来怎么就能判断呢?如果站在你后面的那个人想拍你,但是没有拍到你,那你怎么知道哪个人要拍你。除非你可以进那个人思想里面去,再就是你的后脑长了一对眼睛再就是你先知先觉,但是我们的电脑并不知道,它自己将要做什么事情,会做什么事情撒。
      

  9.   

    第2个问题在编程中很常见啊,没人能解决吗?想想如果判断成立了下一个循环在执行IF判断的话就会影响A(那个复杂运算对A有影响)我想判断成立了下一个循环就调判断直接执行A=10没有办法吗?
      

  10.   

    第2个问题在编程中很常见啊,没人能解决吗?想想如果判断成立了下一个循环在执行IF判断的话就会影响A(那个复杂运算对A有影响)我想判断成立了下一个循环就不调用那个判断了,直接执行A=10没有办法吗?
      

  11.   

    之前再增加个bool 判断吧,判断是否要执行复杂运算的if语句。这样也不会占什么资源
      

  12.   

    bool j = false;
    do
    {
    if(!j){
       if (i==一个复杂运算){
          j = true
          a=10;
          ....
       }
    }else{
       a=10;
    }
    }while(ture);
    判断一个bool应该没占那么多系统资源吧
      

  13.   

    cocainy((Kony)) ( Yok(黄旭) 都说了
      

  14.   

    bool j = false;
    do
    {
       if (!j || i==一个复杂运算)
       //C#的if运行机制是:
       //从前向后执行,当出现||时,有一个为真则放弃执行后面的条件,直接进入大括号
       {
          j = true
          a=10;
          ....
       }
    }
    while(ture)
      

  15.   

    Yok(黄旭)已经说了哈,弄个Flag就行了。第一二个问题都可以解决。
      

  16.   

    int d=一个复杂运算
    do
    {
    if (i==d)
    {
    a=10;
    ....
    }
    }
    while(ture)
      

  17.   

    再做一个线程就可以了爬浪费资源  就看一下你什么时候用  想用时创建线程   像帮助一样 可以实时启动的     然后第一次做完你的工作就将自己释放掉(disposed方法)可能是thread.close()
    总体觉得不需要这么做  本来就不需要什么资源的 完全可以像
    bool j = false;
    do
    {if (!j && i==一个复杂运算)
    {
    j = true
    a=10;
    ....
    }
    }
    while(ture)
    就可以解决的
      

  18.   

    或者简单一点:
    bool flag  = false;
    int  i    = 1;
    int  a  = 0;
    do
    {
       if ( flag||i==一个复杂运算)
       {
          flag = true;
          a    = 10;
        }   
    }
    while(true);
    这样显然可以满足楼主的需求:
    1、不一直判断i是否==那个复杂运算,当i==那个复杂运算的时候才忽发的执行a=10
    2、当if(i==复杂运算)成立后,后面的循环就不在执行if (i==一个复杂运算)这个判断了直接执行a=10;
    因为一旦i==那个复杂运算,那么flag就会被设置为true,在这以后的循坏都不会再去判断i是否等于复杂运算,而只要走到为true的flag判断,就会执行a=10的动作。
      

  19.   

    用session运算if得出结果后给session一个值,后面的程序只用判断session是否有值,有就不跳过if拉。
      

  20.   

    用session运算if得出结果后给session一个值,后面的程序只用判断session是否有值,有就跳过if拉。
    多打了一个“不”字,sorry!
      

  21.   

    T1:用oswica(章鱼)的做法
    int d=一个复杂运算
    do
    {
            if (i==d)
            { 
                    a=10;
                    //....
             }
    }
    while(ture)
    T2:sugarshop(糖果店) 的做法bool j = false;
    do
    {
    if(!j){
       if (i==一个复杂运算){
          j = true
          a=10;
          ....
       }
    }else{
       a=10;
    }
    }while(ture);
    判断一个bool应该没占那么多系统资源吧
      

  22.   

    只能简化判断,不可能不判断这个复杂运算。复杂运算符合之后就不再判断,这个容易,上面说的设flag就够了。
      

  23.   

    1、对于“一个复杂运算”成立时,不再判断,可以这样:
    定义一个公用变量Fok(bool Fok=false;),一定要定义成公用变量,这样它的值才能在整个程序内保存。do
    {
    if (Fok==false)
     if (i==一个复杂运算)
     {
       a=10;
       ....
       Fok==true
      }
    else {
       a=10;
       ....
      }}
    while(ture)2、对只有“一个复杂的判断”忽发成立时才进行判断,这的确是只有神才能办得到,如果你不判断它,是永远也不会知道它是否会成立的。你所能做的,只能是优化这个判断,在这个判断一旦有不成立的因素时立即返回false,终止判断。如果你的复杂的判断的成立的要求是松散的,您也可以用一个线程来处理,一旦你的判断成立,就终止这个线程。当然,你的这个线程如果有长的循环来占用系统的资源的话,在循环中你必须随时提交资源给系统.