【问题标题】:Can I use the conditional operator like this?我可以像这样使用条件运算符吗?
【发布时间】:2014-01-02 00:32:35
【问题描述】:
!isalpha( str[first] )  ? ( return isPalindrome( str, ++first, last ) ) : return isPalindrome( str, first, --last ) ;

我收到语法错误。

【问题讨论】:

    标签: c++ conditional operator-keyword


    【解决方案1】:

    这是不允许的,因为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 );
    }
    

    【讨论】:

    • 非常感谢。完全有道理。
    【解决方案2】:
    return !isalpha(str[first]) ? 
           isPalindrome(str, ++first, last) : 
           isPalindrome(str, first, --last);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 2011-03-11
      • 2011-03-11
      • 2013-02-08
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多