c++ - 我可以像这样使用条件运算符吗?

标签 c++ conditional-statements operator-keyword

!isalpha( str[first] )  ? ( return isPalindrome( str, ++first, last ) ) : return isPalindrome( str, first, --last ) ;

我收到一个语法错误。

最佳答案

那是不允许的,因为 return 不允许在表达式中;它只允许在语句的顶层。 (任何表达式都可以用作语句,但反之则不然。)你可以这样写:

return !isalpha(str[first])
           ? isPalindrome(str, ++first, last)
           : isPalindrome(str, first, --last);

或者这个:

if (!isalpha( str[first] )) {
    return isPalindrome( str, ++first, last );
} else {
    return isPalindrome( str, first, --last );
}

关于c++ - 我可以像这样使用条件运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20580068/

相关文章:

c++ - SDL_PollEvent 有什么作用?

c++ - 如何在 C++ 中逐行解析 .dat 文件

c++ - 使用 libcurl 库与使用 system() 调用 curl

vba - If...Then...Else 在 Then 之后有多个语句

operator-keyword - (??=) 双问号和等号,那个运算符有什么作用?

c++ - boost::property_tree xml pretty-print 、格式化

dns - 使用 Terraform,如何有条件地将 VPC 包含在 Route53 定义中

javascript - 这个 eval 条件的目的是什么?

带有运算符[]的c++ const指针

c++ - 运算符重载意外结果