当一个方法返回t>;1作为布尔值

本文关键字:gt 布尔值 返回 方法 一个 | 更新日期: 2023-09-27 17:49:30

有人能解释以下返回语句的用途/含义吗:t>1(参见最后一个if语句最后一个方法(

代码来自一个名为"反转"的游戏http://en.wikipedia.org/wiki/Reversi

这个方法检查你是否附上了另一个玩家的石头。

public bool allowed(int x, int y, bool player)
    {
        int color;
        if(player == true) // true = player is blue.
            color= 1; 
        else color= -1;
        if(stone[x,y] != 0)
            return false;
        else
        {
         for (int dx = -1; dx <= 1; dx ++)
            {
             for (int dy = -1; dy <= 1; dy ++)
             {
                 if (dx != 0 || dy != 0) // 0, 0 must be skipped, own stone.
                 {
                     if (close(color, x, y, dx, dy))
                         return true;
                 }
             }
            }   
        }
         return false;
         }


public bool close(int color, int x, int y, int dx, int dy)
        {
            int s;
            int testx;
            int testy;
            for(int t=1; t<stone.Length;t++)
            {
                testx = x + t * dx;
                testy = y + t * dy;
                if(testx >= board.Width || testx <= 0 || testy >= board.Heigth|| testy <= 0)
                    return false;
            s = stone[x + t * dx, y + t * dy];
            if (s == 0) return false;
            if (s == color) return t>1;
        }
        return true;
    }

当一个方法返回t>;1作为布尔值

此代码:

return t > 1;

相当于:

if (t > 1)
{
    return true;
}
else
{
    return false;
}

但后一种方法是不必要的冗长,不幸的是,在实际代码中很常见。

return语句右侧的任何表达式进行求值,然后从函数返回值。

在这种情况下,t可以大于1,也可以不大于1——意味着它是truefalse——意味着将返回truefalse,这取决于t的值。

它完全等同于:

if(t>1)
    return true;
else
    return false;

如果t大于1,则返回true,否则返回false。

return t > 1;

与相同

if (t > 1)
   return true;
else
   return false;

与相同

bool greaterThanOne;
if (t > 1)
   greaterThanOne = true;
else
   greaterThanOne =false;
return greaterThanOne;

return t>1等于

    if (t > 1)
   {
       return true;
   }
    else
   {
       return false;
   }

还有一种类似CCD_ 7的另一种使用;

static string AmIAwesome(bool b)
        {
            return b ? "Yes, I'm" : "No, I'm not";
        }

这和第一个逻辑是一样的。