为什么break不能和三元运算符一起使用?

while(*p!='' && *q!='')
{
        if(*p==*q)
        {
               p++;
               q++;
               c++;
        }
        else
        break;
}

我用三元运算符写了这个,但是为什么它给出了break语句的错误?

*p==*q?p++,q++,c++:break;

gcc编译器给出这个错误:'break'之前的预期表达式


当你使用三元运算符时,它不像if 。 三元运算符具有这种形式:

(condition ? expression_if_true : expression_if_false);

这两个表达式必须有相同的类型,否则就会造成无意义。

正如Thilo所说,你不能在这个操作符中使用语句,只能使用表达式。 这是因为根据条件,整个三元运算符必须是一个表达式。


语法是:

(condition ? expr_true : expr_false);

expr_true和expr_false必须有一个公共类型(这将是三元运算符的结果)。 此外,当然, break不是一种表达,它是一种表述。

链接地址: http://www.djcxy.com/p/84399.html

上一篇: Why break cannot be used with ternary operator?

下一篇: single linked list primary expression error