if(aCHAR ==\'字符\'||\'另一个字符\')问题

| 嗨,我想尝试检查字符串中的某个字符以确保它不是\\,=,|等,如果是,请用\“ player \”字符替换空格不是,但是函数每次都返回true,即使char newLoc等于\'\'(空): screen.get_contents返回一个充满约束的向量容器,并且 sprite.get_location返回一个带有两个数字的int数组,[0]表示X,[1]是Y。
bool check_collision(Sprite& sprite,int X, int Y, Screen& screen) 
    {
    ////////////////////// check whats already there /////
        char newLoc = screen.get_contents(sprite.get_location()[0]+Y,sprite.get_location()[1]+X);
        if (newLoc == \'|\' || \'/\' || \'_\' || \'=\' || \'X\' || \'x\' )
            return true;
        else
            return false;
    };
问题是什么?谢谢!!     
已邀请:
你需要:
if (newLoc == \'|\' || newLoc == \'/\' || ...)
您写的内容等同于:
if (newLoc == (\'|\' || \'/\' || ...))
等效于:
if (newLoc == 1)
请注意,更简洁的编写方式可能是:
switch (newLoc)
{
case \'|\':
case \'/\':
...
    return true;

default:
    return false;
}
    
newLoc == \'|\' || \'/\' || \'_\' || \'=\' || \'X\' || \'x\'
不起作用,您必须这样做:
newloc == \'|\' || newloc == \'/\' || etc...
但是,这更容易阅读:
switch (newloc):
    case \'|\':
    case \'/\':
    case \'_\':
    case \'=\':
    case \'X\':
    case \'x\':
        return true;
    default:
        return false;
    

要回复问题请先登录注册